Как заставить zsh Tab-дополнение исправить ошибки заглавных букв для каталогов и файлов?

Как заставить zsh Tab-дополнение исправить ошибки заглавных букв для каталогов и файлов?

Я полностью переключился на zsh на предыдущей установке arch, и он мне ОЧЕНЬ понравился, в основном потому, что arch — один из дистрибутивов, который пишет с заглавной буквы ваши Documents, Downloads, Music и подобные каталоги в вашем каталоге ~. Так как я не привык к этому и использую автодополнение Tab для почти всего в терминале, zsh был для меня раем по сравнению с bash... Клянусь, эта функция раньше была активна автоматически, потому что я не помню, чтобы мне приходилось что-то настраивать, чтобы заставить ее работать таким образом. Вероятно, я понял это случайно. xD Но я бы очень хотел восстановить эту функцию на моем новом ПК, используя zsh в качестве основной оболочки, и если кто-то знает, как это сделать, я был бы очень признателен за ответ. Я пробовал активировать каждую опцию в конфигурации автодополнения, и это, похоже, не сработало... так что это привело меня сюда.

PS: Раньше я был намного более продвинутым в своих знаниях о Linux, и теперь мои знания устарели... Я пытаюсь это исправить... (без использования клавиши Shift, насколько это возможно... хаха)

решение1

TL;DR: Это возможно, если вы добавите эти строки в свой zshфайл конфигурации, обычно ~/.zshrc:

autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

Еще немного информации:

Это возможно при использовании система завершения zsh(начато autoload -Uz compinit && compinit) и управляетсяzstyle:

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

Это означает zsh, что строчные буквы будут соответствовать строчным и заглавным буквам. (т.е. заглавные буквы соответствуют только заглавным буквам.)

Если вы хотите, чтобы заглавные буквы также соответствовали строчным буквам, используйте вместо этого:

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

Если вы хотите, чтобы совпадения выполнялись без учета регистра, только если нет совпадений, учитывающих регистр, добавьте '', например

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'

См. также описание matcher-list в man zshcompsys.

Связанный контент