基础插件 #
重点来了,接下来我们一起来看看 zsh 的效率神器 - 插件能力吧。本问先给大家推荐 5 款常用的插件。ohmyzsh 提供的所有内置插件,都可以在仓库 ohmyzsh/ohmyzsh/plugins 中找到,每个插件都有相应的介绍文档。
本教程将要介绍的 5 个 oh-my-zsh 内置插件,如下所示:
- git,Git 插件,其实就是提供一些常用的 git 命令别名。
- web-search,命令行打开搜索引擎,已支持大部分搜索引擎;
- jsontools,用于格式化 json 数据;
- z,基于历史访问目录的快速跳转;
- vi-mode,使用 vi 模式编辑命令行;
启用所有插件,打开 zshrc
配置,把这些内置插件都打开,如下所示:
plugins=(git web-search jsontools z vi-mode)
插件 1 - git #
Git 插件提供了 git 命令的大量别名,查看 git 插件文档。
如下一些常用命令的别名:
git clone -> gcl
git status -> gst
git commit -> gc
git add -> ga
git add --all -> gaa
git diff -> gd
git push -> gp
git pull -> gl
更多命令的映射关键关系,可自行查看它的 文档。
这个插件不错,但有个缺点,这么多可用别名,我又记不住,岂不是成了摆设。如果想用好,我每次都用去查文档吗?不查文档行不行呢?
当然也是可以的,oh-my-zsh 中启用的一些其他插件可能也会有别名。
其实,有一个插件可帮忙我们解决这个问题,叫做 you-should-use
,这是下期要介绍的一个插件。简单说下,它的作用是,当我们输入一个命令时,如果这个命令存在别名,它会提示我们要使用别名。
插件 2 - web-search #
web-search 提供了在终端直接搜索信息的能力。
当然,其实也不是完全在终端完成,它会自动跳转浏览器,转到指定的搜索引擎执行搜索请求。
效果大概就是下面这样:
常见的搜索引擎基本都是支持的,诸如 google, bing, baidu, 甚至是 github 等。
不过,我也得承认,其实这个插件一般我本人很少用,因为我已经安装了另外一个工具 alfred(替代 mac 默认的 spotlight),我都是通过它直接启动搜索。
插件 3 - jsontools #
接下的这个插件,名为 jsontools ,即用于 json 的 tool。其实它只提供了一些操作 json 的基本命令,如下:
- pp_json 实现 json 字符串格式化;
- is_json 判断是否是 json;
我们直接看下演示效果吧,如下所示:
还是得说明,如果你没有更好的方案,安装了 oh-my-zsh,这是个不错的选择,因为你可能以前都没用过这类工具。
不过其实这个插件呢?我也很少用。
我习惯使用一款叫做 jq 的命令,如果你了解它,就知道它多强大。后面说到高效命令的时候,会介绍到它的。
插件 4 - z #
z 插件 可用于快速的目录跳转,我觉得大部分人在使用 Linux 都被 cd 跳转目录跳转烦恼过。
z 就是这个烦恼的救星。
想查看更多信息可找 z 原仓库 - zsh-z 查看。oh-my-zsh 下的 z 文档说明中提到,它是从这个 zsh-z 的插件中拷贝而来的。
我们来介绍它的用法,简单来说,它是基于历史访问过的目录快速跳转。我们无需输入全路径,即可完成目录切换。
下面是一些实际案例。
首先,我直接输入 z,紧跟 tab 键,会看到如下的效果。它会直接将访问过的目录都列出来。
这些由 tab 产生的自动补全目录都是历史访问过的目录。因为,在没有输入任何内容的情况下,我们输入 tab 的,它列出最近访问过的目录。
如果我们输入形如 z substring,即提供子字符串,它们将所有匹配 substring 的目录都列举出来。
效果如下:
例如,我们输入 z blog,紧跟 tab 键,会直接列出访问过包含 blog 的目录。
如果输入内容只有一个关联的目录名,它会如图上一样直接补全。
演示效果:
我们输入 z tmux,因为匹配 tmux 的目录只有一个,将会被直接选中。
当然,其实这里匹配的目录名只有一个,直接输入 Enter 就可以进入目录,无需 tab 选择多次一举了。
演示效果:
我们输入 z tmux,直接 Enter 确认,即可进入到目录。
z 非常强大是吧?
其实,有一款更强大的命令,名为 zoxide,也提供了类似的能力,它的灵感是来源于 z。我一般用的是它,后面我会介绍。
当然,这不妨碍你继续使用 oh-my-zsh 内置的工具 z,毕竟它很容易配置。
插件 5 - vi-mode #
vi-mode 插件 支持在命令行开启 vi 模式,利用 vi 键进行命令行编辑。这个插件,视个人情况,是否使用吧。如果你是一个 vi 忠实用户,可考虑开启。否则,还是简单最好,否则容易影响心情。
这个插件就不多介绍了,更多查看 它的文档。另外,如果确实对 vim 感兴趣,也可以考虑另外一个 vi 插件,名为 zsh-vi-mode,它的能力更强大,也解决这个默认 vi 插件的一些不好用的 bug,不过它的配置有点复杂。