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
- 自动加上了很多奇怪的下划线
- 同一个目录, 访问过几次, 待选列表就会出现几个(如果我访问过几百次呢?)
这个问题已经好多年了, 判断 autojump 在 mac 下根本不可用, 放弃!
回去再试试 z 终于找个一个完美方案
方案
z 的 tab 补全确实是个脑残:
- 匹配关键字必须多余 2 个字母, 否则不干活
- 会莫名的匹配到毫无关键字的目录
偶然在这里看到作者在推荐他的, 按照 README 的方式是无法正确安装的(mac zsh 下):
这里写一下吧
需要依赖 fzf, 先安装
brew install fzf
给zsh安装zplug
在.zshrc添加要安装的插件
zplug "changyuheng/fz", defer:1
zplug "rupa/z", use:z.sh
执行
zplug install
安装
效果如下:

接近完美
ubuntu
https://github.com/changyuheng/fz#zsh-1
ubuntu 下apt没有包
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
安装 zplug
curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
添加到.zshrc
source ~/.zplug/init.zsh
zplug "changyuheng/fz", defer:1
zplug "rupa/z", use:z.sh