Bash 是使用最广泛的 Shell,Zsh 则是开发者圈里最受青睐的,但 Fish 往往被许多人忽视。
这绝非夸张之辞。Fish 的确是个备受忽视的 Shell,它对新手和资深的自由开源软件用户,都可能是极好的选择。
Fish 提供了一系列吸引人的功能,使其具有鲜明优势。这其中包括了从语法高亮到缩写(我个人最喜欢的部分),这里面充满了种种新奇。
下面,我要和大家分享一些我最青睐的 Fish Shell 特性。
1、语法高亮
在错误的命令被执行之前就识别出它们将大大节省你的时间,同时降低你的挫败感。
现代的许多代码编辑器都内置了语法高亮功能,而 Fish 不仅将此功能内置在了 Shell 中,而且对于 Linux 命令也同样有效。
命令有误?你会发现其被红色高亮。同样的,对于不符合上下文的参数和选项也是如此。
错误高亮为红色
2、自动建议
当你输入命令时,Fish Shell 会自动推荐命令,然后你可以按照提示,使用Tab
键进行相应的补全操作。
Fish 自动补全
随着你的输入,建议会以灰色显示,使其更易于识别。如果整条建议都对你的胃口,你可以按右箭头键来完成整个命令的补全。
3、命令选项的交互式手册页
这是一个炫酷的功能,你可以交互性地参考手册页完成命令选项的填写。
首先,你需要先解析手册页,这可以通过以下命令来完成:
fish_update_completions
这会对手册页进行解析。
手册页解析
现在,如果你输入一个命令,添加连字符作为选项,然后按下Tab
键,就能看到手册页给出的可能选项及其简短描述:
Fish 手册页帮助
你可以通过滚动一览这些选项,并在阅读了作用说明后,从弹出的分页器中进行选择。
要比直接输入command -h
更便利一些对吧。
4、缩写优于别名
在 Fish 里,缩写的作用就如同文本扩展工具。你可以为一些常用的代码设置易于调用的缩写。
比如说,我把sch
设为pacman -Ss
的缩写,用以搜索软件包。
abbr -a sch pacman -Ss
于是,每次我输入sch
并按空格键后,它就会被替换成pacman -Ss
。
Fish Shell 缩写
你甚至可以把它写入配置文件,让其成为永久设置。