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

给zsh安装zplug

在.zshrc添加要安装的插件

zplug "changyuheng/fz", defer:1
zplug "rupa/z", use:z.sh

执行

zplug install

安装

效果如下:

![效果](/assets/gif/zsh 下的路径跳转和补全.gif)

接近完美

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

comments powered by Disqus