Ответ 1
Если у вас 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>
означает, что вы нажимаете клавишу табуляции):
$ 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/