终端-快速目录跳转-z_lua

z.lua 是一个快速路径切换工具,它会跟踪你在 shell 下访问过的路径,经过一段简短的学习之后,z.lua 会帮你跳转到所有匹配正则关键字的路径里最高频的那条路径去。

正则将按顺序进行匹配,"z foo bar" 可以匹配到 /foo/bar ,但是不能匹配 /bar/foo

Untitled4

项目地址:[github.com/skywind3000/z.lua](https://github.com/skywind3000/z.lua

特性

  • 性能比 z.sh 快三倍,比 fasd / autojump 快十倍以上。
  • 支持 Posix Shell:bash, zsh, dash, sh, ash, busybox 等等。
  • 支持 Fish Shell,Power Shell 和 Windows cmd。
  • 使用增强匹配算法,更准确的带你去到你想去的地方。
  • 低占用,能够仅在当前路径改变时才更新数据库(将 $_ZL_ADD_ONCE 设成 1)。
  • 交互选择模式,如果有多个匹配结果的话,跳转前允许你进行选择。
  • 集成 fzf (可选),可以用来做可视化选择或者参数补全。
  • 快速跳转到父目录,或者项目根目录,代替反复 “cd ../../..” 。
  • 自包含且无额外依赖,单个 z.lua 文件完成所有工作。

安装

  • Posix Shells(Bash、zsh、dash、sh 或 BusyBox 等):

    在你的 .bashrc, .zshrc 或者 .profile 文件中按 shell 类型添加对应语句:

    1
    2
    3
    eval "$(lua /path/to/z.lua  --init bash)"   # BASH 初始化
    eval "$(lua /path/to/z.lua --init zsh)" # ZSH 初始化
    eval "$(lua /path/to/z.lua --init posix)" # Posix shell 初始化
  • Power Shell:

    在你 Power Shell 的配置文件 profile.ps1 中放入下面语句:

    1
    iex ($(lua /path/to/z.lua --init powershell) -join "`n")
  • Windows cmder:

    • 将 z.lua 和 z.cmd 拷贝到 cmder/vendor 目录中。
    • 将 cmder/vendor 添加到环境变量 %PATH% 里面。
    • 保证 lua 命令在你的 %PATH% 环境变量中。

使用

1
2
3
4
5
6
7
8
9
10
z foo       # 跳转到包含 foo 并且权重(Frecent)最高的路径
z foo bar # 跳转到同时包含 foo 和 bar 并且权重最高的路径
z -r foo # 跳转到包含 foo 并且访问次数最高的路径
z -t foo # 跳转到包含 foo 并且最近访问过的路径
z -l foo # 不跳转,只是列出所有匹配 foo 的路径
z -c foo # 跳转到包含 foo 并且是当前路径的子路径的权重最高的路径
z -e foo # 不跳转,只是打印出匹配 foo 并且权重最高的路径
z -i foo # 进入交互式选择模式,让你自己挑选去哪里(多个结果的话)
z -I foo # 进入交互式选择模式,但是使用 fzf 来选择
z -b foo # 跳转到父目录中名称以 foo 开头的那一级

Alias

通过设置别名可以快速打出的自定义的选项,比如

1
2
alias zc='z -c'      # 严格匹配当前路径的子路径
alias zz='z -i' # 使用交互式选择模式

搭配 fzf 使用 更佳哦(fzf请查看笔者另一文章)

1
2
# 搭配 fzf 进行历史路径模糊匹配:
alias zf='cd "$(z -l -s | fzf --reverse --height 35%)"'

更多

更多优秀内容,可以通过 关注微信公众号【极客收藏夹】 获取哦!

wx