z.lua 是一个会学习你使用习惯的 cd 命令,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 Mozilla),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。 1.4.8 版本更新如下内容:
基本使用:cd 到一个包含 foo 的目录: z foo cd 到一个以 foo 结尾的目录: z foo$ 对长路径使用多个关键字进行匹配: 假设路径历史数据库(~/.zlua)中有两条记录: 10 /home/user/work/inbox "z in" 将会跳转到 /home/user/mail/inbox 因为它有更高的权重,同时你可以传递更多参数给 z.lua 来更加精确的指明,如 "z w in" 则会让你跳到 /home/user/work/inbox。 交互选择:使用 -i 参数进行跳转时, 如果有多个匹配结果,那么 z.lua 会给你显示一个列表: $ z -i soft 3: 0.25 /home/data/software 2: 3.75 /home/skywind/tmp/comma/software 1: 21 /home/skywind/software > {光标位置} 然后你按照最前面的序号输入你想要去的地方,比如输入 3 就会进入 /home/data/software。如果你不输入任何东西直接按回车,那么将会直接退出而不进行任何跳转。 skywind@weilin0:~$ z vim > vim < 46/287 > 454 ~/software/vim 438 /mnt/d/acm/github/vim/etc 30.5 ~/github/vim 24.5 /mnt/d/acm/github/vim 18 /mnt/d/acm/github/vim-init 8 ~/software/vim/src 6 ~/.vim 5 /mnt/d/acm/github/vim/autoload 4.5 ~/.vim/vim 4.5 /mnt/d/acm/github/vim/autoload/dash 3.75 ~/tmp/comma/software/vim 2 ~/.vim/vim/etc 快速回到父目录:"-b" 选项可以快速回到某一级父目录,避免重复的输入 "cd ../../..",一般把 "z -b" 别名成 "zb" 命令:
使用举例: # 一直向上退到项目根目录(就是里面有一个 .git 目录的地方) ~/github/lorem/src/public$ zb => cd ~/github/lorem # cd 到第一个以 g 开头的父目录 ~/github/vimium/src/public$ zb g => cd ~/github # 将 jekyll 替换为 ghost ~/github/jekyll/test$ zb jekyll ghost => cd ~/github/ghost/test |