Я пробую zsh, и есть поведение завершения табуляции, которое я нахожу раздражающим: кажется, что если я наберу cd str и нажму TAB, он автоматически завершится с *str* . Например, результаты cd pl TAB в качестве функции автозаполнения cd Applications/ « потому что Ар пл ications» содержит " , пл.

Есть ли способ отключить это?

Я знаю, что в zsh есть функция завершения вкладки, где cd /u/loc/b TAB приведет вас в /usr/local/bin . Это поведение связано?

  • Операционная система: OSX 10.11
  • Zsh версия: 5.0.8
  • плагины oh-my-zsh: git, подсветка синтаксиса zsh, z

ОБНОВИТЬ

Я отследил нарушающий блок кода до моего ~/.oh-my-zsh/oh-my-zsh.sh .

67 if [[ $ZSH_DISABLE_COMPFIX != true ]]; then
68   # If completion insecurities exist, warn the user without enabling completions.
69   if ! compaudit &>/dev/null; then
70     # This function resides in the "lib/compfix.zsh" script sourced above.
71     handle_completion_insecurities
72   # Else, enable and cache completions to the desired file.
73   else
74     compinit -d "${ZSH_COMPDUMP}"
75   fi
76 else
77     compinit -i -d "${ZSH_COMPDUMP}"
78 fi

Я все еще читаю документацию и пытаюсь выяснить, что именно происходит.

1 ответ1

2

Хорошо. Я думаю, что я разобрался. Этот пост был очень полезным.

В основном, oh-my-zsh устанавливает завершение

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

Удаление 'l:|=* r:|=*' (что является последним правилом) теперь дает мне желаемое поведение.

Возможность делать cd /u/lo/b/ TAB не ставится под угрозу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .