作者:Mahmoud Ashraf
翻译:New Frontend
作为一个软件工程师,我大部分时间都花在终端模拟器下,因此在高效的终端模拟器下使用高效的工具很有必要。
许多基于 Rust 编写的软件帮我达成了这一点。这篇文章会介绍这些工具。
ls
现代版cat
克隆find
替代品首先介绍 Alacritty,这是最快的终端模拟器之一,因为它使用 GPU 渲染,而且它也是跨平台的。
配色方案、字体、透明度、键盘快捷键等都能定制。
Alacritty 不支持合字,但你可以用这个支持合字的分支。如果你用 Arch 的话,也可以通过 [aur] 安装。
我以前的命令行提示符用 zsh + powerlevel9k,后来转用 powerlevel10k,但在开新 shell 时我都观察到了延迟。starship 则能立刻启动。
它可以搭配任何 shell 使用,比如 bash、zsh、fish,甚至 powerShell.
下面的截图显示了我定制的提示符。
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
我的 ls
和 ll
命令显示结果:
bat 是 cat
命令的一个实现,但加上了语法高亮。
我也给它建了个别名(我用 Nord 主题)。
if [ "$(command -v bat)" ]; then unalias -m 'cat' alias cat='bat -pp --theme="Nord"' fi
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
我没有使用任何文件浏览器,只用 cd
和 ls
。
比方说,我的家目录下有一个存放各种项目的 projects
目录,如果我想访问其中一个项目,我需要输入
cd ~/projects/mahmoudashraf.dev
使用 zoxide 后,只有第一次需要输入
z ~/projects/mahmoudashraf.dev
之后不管当前目录是哪里,简单输入几个字母就可以再次访问这一目录
z mah
这是一个跨平台的命令行工具,可以使用正则表达式搜索目录下的文件内容。
推荐阅读 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
比 find
命令更友好,也更快。
默认情况下会忽略 .gitignore
中指定需要忽略的文件。
比如,把一些 png
格式的文件转换为 jpeg
格式:
fd -e png -x convert {} {.}.jpeg
再比如删除文件:
fd -H '^\.DS_Store$' -tf -X rm
它不是 top
😀 是 bottom
。
它是一个跨平台的系统监视器。
tldr 为各种命令行工具提供了速查卡,可以省下阅读完整的 man
帮助手册的时间。
spotify-tui
这个轻量级替代品。gitui
。使用 Rust 编写的命令行工具和其他工具还有很多,详见 lib.rs/command-line-utilities。