z.lua 是一个新工具,可帮助您从命令行更快地导航文件系统,根据“频率”跟踪您最常用的目录。
首先,该工具会学习您最常用的目录,然后使用基于“频率”(基于目录的最近访问时间和访问频率)的算法对目录进行排名,只需键入一个即可轻松导航到某些目录他们的道路上的几个字母。 不要指望 z.lua 立即工作,它需要一些时间来创建一个包含频繁和最近目录的数据库。
虽然还有其他类似的工具,但开发人员声称 z.lua 要快得多。 例如,
z.lua 应该比 fasd 和 autojump 快 10 倍,比 z.sh 快 3 倍。
更重要的是,z.lua 包括
两种匹配算法
. 默认匹配算法类似于 z.sh 使用的算法,其中路径必须按顺序匹配所有正则表达式。 还有一种增强的匹配算法,其中查询必须按顺序匹配路径,就像默认方法一样,最后一个查询必须匹配路径的最后一段; 如果未找到匹配项,则使用默认匹配项。 两者都在 z.lua 项目页面上进行了详细解释。
z.lua 特点:
- 比 fasd 和 autojump 快 10 倍,比 z.sh 快 3 倍。
- 可以用来: bash、zsh、dash、sh、ash、ksh、busybox、Fish Shell、Power Shell 和 Windows cmd。
- 2 目录匹配算法。
- 仅在以下情况下才允许更新数据库
$PWD
更改为$_ZL_ADD_ONCE
设置1
. - 交互式选择使您可以选择之前要去的地方
cd
(当找到多个匹配项时,使用z -i
显示匹配目录的列表) - 与 fzf(可选)集成以进行交互式选择和完成。
- 快速返回父目录而不是键入
cd ../../..
- 在不同的 shell 和操作系统中的类似经验。
- 与 Lua 5.1、5.2 和 5.3+ 兼容
z.lua 还带有一些选项,可让您更改命令,从匹配中排除目录,甚至可以从 z.sh 或自动跳转导入数据。
z.lua 示例
示例 1。
假设您有一条很长的路,例如
/a/b/c/foo/bar
,并且您想从命令行导航到它。 使用 z.sh,您只需键入以下内容即可直接导航到 bar 目录:
z foo bar
这匹配
foo/bar
, 但不是 bar/foo!
示例 2。
让我们从我的电脑看一个真实的例子。 我的系统上有这条路径:
/home/logix/Stuff/Unity3d/unity2d_platformer/Assets/Art
路径很长,使用终端导航到它需要一段时间,即使 TAB 完成也是如此。
在我使用终端导航到此文件夹后(因此 z.lua 可以跟踪它),我现在可以使用 z.lua 直接进入
Art
文件夹:
z art
该命令很短,因为我没有其他命令
Art
我最近导航到的目录(实际上它是唯一的
Art
我系统上的文件夹)。 如果我有多个同名文件夹,我可以键入以下内容导航到该特定文件夹:
z assets art
您可以在 z.lua 项目页面上看到更多使用示例,包括如何
cd
到排名最高的目录,最近访问的目录,列出匹配项而不是
cd
, 和更多。
安装 z.lua
要使用 z.lua,你需要安装 Lua:
- Debian、Ubuntu、Linux Mint、elementary OS 和其他基于 Debian 或 Ubuntu 的 Linux 发行版:
sudo apt install lua5.2
- Fedora:
sudo dnf install lua
在其他 Linux 发行版上,您应该在存储库中找到 Lua。
现在您可以下载最新的 z.lua 版本,将其解压缩,然后使用安装说明为您的 shell(Bash、Zsh、Fish、Power Shell、Windows cmd 等)安装它。
例如,如果您使用 Bash,请将 z.lua 发布存档解压缩到
~/.z.lua
系统上的文件夹,然后将其添加到您的
~/.bashrc
文件:
- 使用默认匹配方法:
eval "$(lua ~/.z.lua/z.lua --init bash)"
- 使用增强匹配算法:
eval "$(lua ~/.z.lua/z.lua --init bash enhanced once)"
保存您所做的更改后
~/.bashrc
,打开一个新终端或获取它:
. ~/.bashrc
现在您已准备好使用 z.lua,但请记住,它必须创建一个数据库来确定您要导航到哪个目录。