最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 基于 Rust 编写的实用命令行工具

    正文概述 掘金(LeanCloud)   2021-03-10   991

    作者:Mahmoud Ashraf

    翻译:New Frontend

    作为一个软件工程师,我大部分时间都花在终端模拟器下,因此在高效的终端模拟器下使用高效的工具很有必要。

    许多基于 Rust 编写的软件帮我达成了这一点。这篇文章会介绍这些工具。

    tl;dr

    • alacritty 使用 GPU 加速的跨平台终端模拟器
    • starship ? 超级快、支持各种订制的极简命令行提示符,支持任意 shell
    • exa ls 现代版
    • bat 支持更多特性的 cat 克隆
    • delta git、diff 输出查看器
    • zoxide 更快捷地浏览文件系统
    • ripgrep 基于正则表达式递归搜索目录
    • fd 简单、快速、用户友好的 find 替代品
    • bottom 又一个跨平台的图形化进程/系统查看器
    • tldr ? 众人一起编写的终端命令速查卡
    • spotify-tui Spotify 客户端命令行版 ?
    • gitui 超级 ? 快的 git 字符界面客户端

    Alacritty

    首先介绍 Alacritty,这是最快的终端模拟器之一,因为它使用 GPU 渲染,而且它也是跨平台的。

    配色方案、字体、透明度、键盘快捷键等都能定制。

    Alacritty 不支持合字,但你可以用这个支持合字的分支。如果你用 Arch 的话,也可以通过 aur 安装。

    基于 Rust 编写的实用命令行工具

    Starship

    我以前的命令行提示符用 zsh + powerlevel9k,后来转用 powerlevel10k,但在开新 shell 时我都观察到了延迟。starship 则能立刻启动。

    它可以搭配任何 shell 使用,比如 bash、zsh、fish,甚至 powerShell.

    下面的截图显示了我定制的提示符。

    基于 Rust 编写的实用命令行工具

    Exa

    exa 是 ls 命令的一个实现,但自带色彩和图标,渲染也非常快。

    我建了一个别名,用 exa 代替 ls.

    if [ "$(command -v exa)" ]; then
        unalias -m 'll'
        unalias -m 'l'
        unalias -m 'la'
        unalias -m 'ls'
        alias ls='exa -G  --color auto --icons -a -s type'
        alias ll='exa -l --color always --icons -a -s type'
    fi
    

    我的 lsll 命令显示结果:

    基于 Rust 编写的实用命令行工具

    Bat

    bat 是 cat 命令的一个实现,但加上了语法高亮。

    我也给它建了个别名(我用 Nord 主题)。

    if [ "$(command -v bat)" ]; then
      unalias -m 'cat'
      alias cat='bat -pp --theme="Nord"'
    fi
    

    基于 Rust 编写的实用命令行工具

    Delta

    delta 增强了 git diff 的显示效果,包括语法高亮、行号、双栏显示。

    想使用 delta 的话,需要在 .gitconfig 中加上:

    [core]
      pager = delta
    [interactive]
      diffFilter = delta --color-only
    [delta]
      side-by-side = true
      line-numbers-left-format = ""
      line-numbers-right-format = "│ "
      syntax-theme = Nord
    

    在上面的配置中,delta 成为 git 命令输出的默认 pager,开启了双栏显示,并将主题设为 Nord。你可以运行以下命令列出所有主题,并从中选择想用的主题。

    delta --list-syntax-themes
    

    基于 Rust 编写的实用命令行工具

    Zoxide

    我没有使用任何文件浏览器,只用 cdls

    比方说,我的家目录下有一个存放各种项目的 projects 目录,如果我想访问其中一个项目,我需要输入

    cd ~/projects/mahmoudashraf.dev
    

    使用 zoxide 后,只有第一次需要输入

    z ~/projects/mahmoudashraf.dev
    

    之后不管当前目录是哪里,简单输入几个字母就可以再次访问这一目录

    z mah
    

    Ripgrep

    这是一个跨平台的命令行工具,可以使用正则表达式搜索目录下的文件内容。

    推荐阅读 ripgrep is faster than {grep, ag, git grep, ucg, pt, sift} 一文。

    下面是一些例子:

    # 基于特定正则表达式搜索 javascript 文件
    rg tjs "import React"
    
    rg "\.content" -g "*.pug"
    
    # 不仅可以查找,还可以替换,类似 sed 命令的查找替换功能
    rg fast README.md --replace FAST
    

    基于 Rust 编写的实用命令行工具

    Fd

    find 命令更友好,也更快。

    默认情况下会忽略 .gitignore 中指定需要忽略的文件。

    比如,把一些 png 格式的文件转换为 jpeg 格式:

    fd -e png -x convert {} {.}.jpeg
    

    再比如删除文件:

    fd -H '^\.DS_Store$' -tf -X rm
    

    bottom

    它不是 top ? 是 bottom

    它是一个跨平台的系统监视器。

    基于 Rust 编写的实用命令行工具

    Tldr

    tldr 为各种命令行工具提供了速查卡,可以省下阅读完整的 man 帮助手册的时间。

    基于 Rust 编写的实用命令行工具

    更多工具

    • 如果你嫌 Spotify 的官方客户端太笨重,可以使用 spotify-tui 这个轻量级替代品。
    • 如果你喜欢通过 UI 界面操作 git,可以看下 gitui

    使用 Rust 编写的命令行工具和其他工具还有很多,详见 lib.rs/command-lin…。


    起源地下载网 » 基于 Rust 编写的实用命令行工具

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元