Если у вас есть setopt AUTO_PUSHD
в вашем .zshrc
, то 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>
означает, что вы нажали клавишу 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
Затем найдите каталог вstack.
$ cd ~+<TAB>
1 -- ~/1/2/3/4
2 -- ~/1/2/3
3 -- ~/1
4 -- ~
Затем используйте завершение табуляции для записи.
$ cd ~+2/<TAB>
4/ bar/ baz/ foo/