如何设置Z shell,以便键入cd – 可以提供先前访问过的路径的列表,然后cd -1,-2,-3等会将您带到目录中?
如果你的.zshrc中有一个AUTO_PUSHD,那么cd会自动对你改变的每个目录进行pushd。以ZyX为例:
$ setopt AUTO_PUSHD $ mkdir -p 1/2/3/4 $ cd 1 $ cd 2 $ cd 3 $ cd 4
您可以使用dirs查看目录列表:
$ dirs -v 0 ~/1/2/3/4 1 ~/1/2/3 2 ~/1/2 3 ~/1 4 ~
为了能够完成列表,您可以使用带有cd的& – 参数(< TAB>表示您点击标签键):
$ cd +<TAB> 1 -- ~/1/2/3 2 -- ~/1/2 3 -- ~/1 4 -- ~
或者相反:
$ cd -<TAB> 0 -- ~ 1 -- ~/1 2 -- ~/1/2 3 -- ~/1/2/3
然后选择要转到该目录的号码:
$ cd +2 $ pwd ~/1/2
标签完成目录
我总是忘记以下的魔法顺序,所以我更新了解释这部分的答案。
和 – 只会带你到目录,你不能标签完成堆栈中的路径(即cd -2 /< TAB>给你什么)。为了使这项工作,您可以使用波浪号(〜)。
在3中做一些目录,使这个例子更好。
$ mkdir 3/foo 3/bar 3/baz
然后找到堆栈中的目录。
$ cd ~+<TAB> 1 -- ~/1/2/3/4 2 -- ~/1/2/3 3 -- ~/1 4 -- ~
然后在条目上使用选项卡完成。
$ cd ~+2/<TAB> 4/ bar/ baz/ foo/