zsh/fish 的补全系统是比较完善的,使用 z foo<tab>
就能触发补全,显示一个列表:
再次按 <tab>
键,就可以用可视化的方式对列表进行选择。
在 bash 下面补全系统没有那么强大,所以 z.lua 引入了 fzf 补全,初始化时在 --init
后追加 fzf
关键字:
eval "$(lua /path/to/z.lua --init bash enhanced once echo fzf)"
然后你在 bash 中,输入部分关键字后按 tab,就能把匹配的路径列出来:
有了 fzf 的帮助,bash 下补全也非常方便了。
注意:该功能在初始化 z.lua 之前,会检测 $PATH 中是否有 fzf 这个程序,有的话才启用。
以往我们经常使用 cd -
命令来回到刚才访问过的目录,而有了 fzf 的帮助,我们可以更高效的来完成这件事情:
alias zh=`z -t -I .`
首先定义个新的别名 zh
(回到历史路径的意思),我们使用了 -t
参数来告诉 z.lua
按照时间戳作为权重进行排序,同时 -I
启用 fzf 进行搜索,最后的句号代表任意路径。
那么当我们在命令行敲入 zh 时,就可以用 fzf 选择最近呆过的路径了:
第一列数据代表该路径多少秒以前访问过,第二列是路径名称。此时,你可以试着敲几个字母,用 fzf 的字符串模糊匹配进行定位,或者用光标键的上和下(CTRL+J/K 也可以)来上下移动,最后按回车 cd 过去,或者 ESC 放弃。
这样跳转最近访问目录,比传统方法爽很多。
1
azh7138m 2019-02-11 14:04:41 +08:00 via Android
这个我想扩展要怎么做呢?
之前看介绍说,可以快速回到一个有 .git 的父目录,我想加一个回到有 package.json 的父目录。 |
2
skywind3000 OP |
3
skywind3000 OP @azh7138m 我已经更新文档,加入了这部分说明。
|
4
azh7138m 2019-02-11 14:20:53 +08:00 via Android
@skywind3000 我寻思着,这个时间点,是不是就算摸鱼了🤣
|
5
skywind3000 OP 利用吃饭时间更新的,哈哈。
|