Контекст для тех, кто знает о завершении zsh, но не обо всех его возможностях. Одна из уникальных и действительно полезных функций zsh заключается в следующем:
[/usr/dir1/dir2/dir3/]$ cd dir1 dirnew
/usr/dirnew/dir2/dir3
[/usr/dirnew/dir2/dir3]$
т.е. если пользователь может заменить определенный каталог в иерархии другим. Это очень удобная функция. (при условии, что у dirnew есть dir2/dir3). Если у dirnew не было dir2/dir3, эта команда не будет выполнена.
Интересно, как я могу завершить CD, хотя, для длинных имен каталогов. Когда я делаю cd <TAB>
, кроме каталогов в текущем каталоге, то также должны отображаться каталоги в текущей иерархии. После того как я выберу один из каталогов из иерархии или введу его, если я снова <TAB>
, я должен получить параметры завершения из каталогов в родительском каталоге, которые имеют похожую иерархию. В приведенном выше примере, скажем, /usr / имеет dirnew и diranother beisdes dir1. У dirnew есть dir2 / dir3, но diranother пуст.
cd dir1 <TAB>
должен дать мне новый вариант, но не diranother.