MRU

z.lua 提供 dirstack 让你更便捷的访问最近刚刚去过的目录,而不需要输入任何关键字。这个方法叫做 dirstack,它记录着最近你刚刚去过的 10 条最新路径,然后是用 z -z --z -{num} 来操作:

```bash# 显示当前的 dir stack
$ z —
0 /home/skywind/work/match/memory-match
1 /home/skywind/.local/etc
2 /home/skywind/software/vifm-0.9.1
3 /home/skywind/work
4 /home/skywind/work/match

cd 到栈里 2 号路径

$ z -2
=> cd /home/skywind/software/vifm-0.9.1

弹出栈顶 (cd 到上一次的老路径),和 “z -0” 相同

$ z -
=> cd -

  1. 这个 `dirstack` 是根据 z.lua 的路径历史数据库计算的出来的,和具体的 shell 或者操作系统无关。你退出再登陆不会丢失这些记录,不同的 shell 之间也可以共享同一份记录。
  2. 此外,还能通过前面提到的 `-I` `-t` 参数组和,使用 fzf 选择最近去过的目录:
  3. ```bash
  4. alias zh='z -I -t .'

方便起见,定义个新的别名 zh(回到历史路径的意思),我们用 -t 参数来告诉 z.lua 按时间戳为权重排序,同时 -I 启用 fzf 搜索,最后句号代表任意路径。

那么当我们在命令行敲入 zh 时,就可以用 fzf 进行历史路径操作了:

cd 到栈里 2 号路径 - 图1

第一列上次访问距今多少秒,第二列是目录名。你可以试着敲几个字母,用 fzf 的字符串模糊匹配进行定位,或者用光标键的上和下(CTRL+J/K 也可以)来上下移动,最后按回车 cd 过去,或者 ESC 放弃。