Zsh 下的路径跳转和补全

May 6, 2019

问题

zsh 自带了一个代码补全 z

常用的一个功能 tab 补全, 出现了脑残的特性:

z fo

按下 tab 后显示的是没有任何 fo 关键字 的 /Users/bigzhu/Project

换到 autojump 试试

autojump 更扯, mac 下 tab 直接是失效的, 找到这个 issues

加入 autoload -U compinit && compinit 能用是勉强能用, 但是太可怕了

$ j fo__                                                                                                                                                                                                                          [7:21:15]
fo__1__/Users/bigzhu/Project/back_end/follow_center_go  fo__2__/Users/bigzhu/Project/back_end/follow_center_go
  1. 自动加上了很多奇怪的下划线
  2. 同一个目录, 访问过几次, 待选列表就会出现几个(如果我访问过几百次呢?)

这个问题已经好多年了, 判断 autojump 在 mac 下根本不可用, 放弃!

回去再试试 z 终于找个一个完美方案

方案

z 的 tab 补全确实是个脑残: 1. 匹配关键字必须多余 2 个字母, 否则不干活 2. 会莫名的匹配到毫无关键字的目录

偶然在这里看到作者在推荐他的, 按照 README 的方式是无法正确安装的(mac zsh 下):

这里写一下吧

需要依赖 fzf, 先安装

brew install fzf

安装本插件

cd ~/.oh-my-zsh/custom/plugins
git clone --depth 1 https://github.com/changyuheng/fz

编辑 .zhsrc 开启插件:

plugins=(git z fzf fz)

效果如下:

效果

接近完美


comments powered by Disqus