z.lua 1.4.8 发布,会学习你使用习惯的 cd 命令

z.lua 是一个会学习你使用习惯的 cd 命令,它会跟踪你在 shell 下访问过的路径,通过一套称为 Frecent 的机制(源自 Mozilla),经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里 Frecent 值最高的那条路径去。

1.4.8 版本更新如下内容:

  • 支持 PowerShell,FishShell

  • 新增向后跳转

  • 新增 FZF 集成

基本使用:

cd 到一个包含 foo 的目录:

z foo

cd 到一个以 foo 结尾的目录:

z foo$

对长路径使用多个关键字进行匹配:

假设路径历史数据库(~/.zlua)中有两条记录:

      10   /home/user/work/inbox
      30   /home/user/mail/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。如果你不输入任何东西直接按回车,那么将会直接退出而不进行任何跳转。
PS:交互选择同时支持 "-I" 参数(大写 i),让你可以使用 fzf 在多项结果进行快速选择(如果系统里面安装了的话):

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" 命令:

  • (没有参数):cd 到项目根目录,寻找父目录中包含 (.git/.svn/.hg) 的地方,并且跳转过去。

  • (单个参数):cd 到最近一级包含关键字父目录中。

  • (两个参数):对当前目录进行字符串替换,然后 cd 过去。

使用举例:

# 一直向上退到项目根目录(就是里面有一个 .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

猜你喜欢

转载自www.oschina.net/news/104415/z-lua-1-4-8-released