使用 Fish shell 提高命令行效率
终端操作方法多种多样。这就是它的魅力所在:无限的自定义和调整,让工作更快、更高效。
在我使用 WSL 的过程中,我遇到了心爱的 zsh 和 oh-my-zsh 组合的性能问题。我琢磨了一个小时,偶然发现了 fish shell,它在 WSL 中的运行速度比 zsh 快 10 倍(这里没有具体的指标,但感觉真的非常快😅🚀)。但它也有一些自身的怪癖,我们稍后会看到。
安装 Fish Shell 🐟
如果您使用基于 Debian 的发行版:
$ sudo apt-get install fish
如果您使用的是其他平台,请按照此处的说明进行操作。
Fish Shell 简介
Fish Shell 开箱即用,轻量级、性能卓越⚡,功能丰富。这意味着您无需费力操作即可在终端中高效工作。一些原生功能包括:
-
语法高亮,
-
自我暗示
-
制表符补全和
-
自动加载功能。
文档丰富详尽,您可以通过在 Fish Shell 中输入 help 来获取本地托管在浏览器中的文档。对于大多数人来说,全新安装即可开始使用。但我们希望通过插件、主题等功能进行调整,使其更加实用。与其他 Shell 一样,Fish 自带了许多插件框架,但我们将使用名为oh-my-fish (omf) 的插件框架。
介绍 omf
omf 是 fish shell 上的一层薄薄的组件,因此不会影响速度和性能。只需一条命令即可安装:
$ curl -L https://get.oh-my.fish | fish
完成此操作后,您将在 shell 中使用 omf 命令来安装主题和其他有用的插件。它非常直观,如果您使用过 nvm 或 pip,您会感觉非常熟悉。
您可以在此处了解命令的基本内容。
带有 omf 的主题🎨
这里有各种各样的主题供您选择。您可以在这里找到所有主题,也可以使用命令 omf theme 列出所有主题,并查看已安装的主题和默认主题。
安装新主题将直接应用该主题。
$ omf install <theme-name>
$ omf install bira

如果您安装了多个主题,则可以使用以下方式在它们之间切换:
$ omf theme <theme-name>
带有 omf 🍦 的别名
当你想用尽可能少的按键完成重复的任务时,别名会非常方便。Fish Shell 有一个名为 alias 的命令来定义你的别名。你可以直接从命令行执行此操作。
$ alias <alias> '<command>' -s
$ alias install 'sudo apt-get install' -s
$ alias remove 'sudo apt-get remove --purge' -s
您可以使用安装别名安装任何软件包,或者使用删除别名将其完全卸载。
$ install vim
$ remove python2.7

install
✍
使用 alias 命令创建的别名仅在一个会话中有效,这意味着如果您创建新的终端实例,它们将无法正常工作。为了使其正常工作,我们必须传递 -s 标志。这将在后台运行 funcsave。
现在它已永久设置,可在任何情况下使用。如果您忘记了别名,可以使用 alias 命令来召唤它们。

使用 nvm
fish shell 的一个怪癖是它无法像nvm那样原生运行一些 bash 实用程序。为此,你需要一个名为bass的包来将 nvm 暴露给 fish shell。
bass 创建了一个框架来支持其他 Bash 实用程序包,例如我们将要使用的fish-nvm包。nvm 包也有,但 fish-nvm 不会成为性能瓶颈。
$ omf install bass
$ omf install https://github.com/FabioAntunes/fish-nvm
使用虚拟环境🐍
这只是使用 fish shell 的陷阱之一。当你使用 Python 虚拟环境时,你无法以正常方式激活它。
$ python -m venv venv
$ source venv/bin/activate
相反,fish shell 添加了一个名为 activate.fish 的脚本来启用 shell。
$ source venv/bin/activate.fish
基本套餐 📦
八打灵再也
pj 让你能够以可预测的方式轻松地在你常用的目录之间跳转。你只需要告诉 pj 在哪里查找你的项目/文件夹,它就会通过 Tab 键自动补全让你轻松跳转。
$ omf install pj
例如:我的主目录中有一个名为 test 的文件夹,其中还有一堆其他文件夹。
要将测试文件夹标记为跳转目标,我们需要设置项目路径:
$ set -Ux PROJECT_PATHS ~/test
现在我可以从终端中的任何位置在测试目录内的文件夹之间跳转。

z
z 与 pj 类似,但它更智能,可以跟踪您访问次数最多的文件夹,以便您轻松跳转到该位置。
$ omf install z
就像我说的,z 是一个智能工具,即使我打错了一个与您最常访问的文件夹名称非常相似的拼写错误,它也会尝试解决并导航到该文件夹。

插件-git
与 zsh 中的 git 插件一样,plugin-git 包为您提供了一组标准的 git 别名,以加速您的 git 工作流程。
$ omf install https://github.com/jhillyerd/plugin-git

不仅如此,为了确保你使用的别名正确,它还会扩展别名以形成完整的命令。点击此处查看完整的别名列表。
零点
Fuzzy Finder 或 fzf 是一个通用命令行工具,可以更快地查找任何内容,无论是文件还是命令历史记录。
$ omf install https://github.com/jethrokuan/fzf
要搜索命令历史记录,您可以使用组合键ctrl + r
或写下命令的某些部分,然后点击组合键以仅查找与您的查询匹配的命令。

如果您想在当前目录中搜索文件,那么您可以点击ctrl + o
并浏览它们。您可以使用此工具做更多的事情,请查看此处的使用部分。
结论🙏
希望本文能帮助您安装 Fish Shell,并提升工作流程的效率。如果您有任何建议或疑问,欢迎在下方留言。
鏂囩珷鏉ユ簮锛�https://dev.to/yankee/command-line-productivity-with-fish-shell-52e4