path-directories
Один из способов - добавить следующие параметры завершения в ваш .zshrc
чтобы удалить path-directories
из источников предложений.
zstyle ':completion:*:complete:(cd|pushd):*' tag-order \
'local-directories named-directories'
имена групп
Альтернативно или дополнительно, следующие настройки должны отображать заголовок для всех соответствующих групп предложений о завершении, чтобы вы могли видеть, какие каталоги являются локальными каталогами, а какие - предложениями из вашего cdpath
.
zstyle ':completion:*' group-name ''
zstyle ':completion:*:descriptions' format %d
Вы можете применять стандартные форматы приглашений к этим описаниям, чтобы они выделялись:
zstyle ':completion:*:descriptions' format %B%d%b # bold
# zstyle ':completion:*:descriptions' format %S%d%s # invert/standout
# zstyle ':completion:*:descriptions' format %U%d%u # underline
# zstyle ':completion:*:descriptions' format %F{green}%d%f # green foreground
# zstyle ':completion:*:descriptions' format %K{blue}%d%k # blue background
# etc.
Это помогает понять различные источники в моем опыте.
Примечание 1: zsh
имеет два представления для переменных массива, таких как PATH
и CDPATH
, из которых строчный вариант является фактическим массивом. Это означает, что вы можете:
cdpath=(path/to/dir /path/to/another/dir)
Или, чтобы получить желаемый результат:
cdpath=(.. ../..)
Лично я нахожу его немного более читаемым, чем разделенный двоеточиями псевдомассив.
Примечание 2: Экспорт CDPATH
не требуется, если у вас нет нескольких программ, которые хотят его установить.