Как предотвратить циклический переход ZSH через соответствующие завершения, а вместо этого просто вывести список оставшихся возможностей?
На моих последних установках ОС я начал получать циклическое поведение ZSH при нажатии клавиши Tab. Мне это не нравится, и я предпочитаю, чтобы оно просто показывало мне список совпадений. В моих старых установках ОС это есть, поэтому я предполагаю, что причиной является какая-то настройка по умолчанию в новой версии Zsh. Я пробовал искать в Google и сравнивать переменные среды ( env
вывод - я могу включить это, если это поможет, но это будет очень долго), но я просто не могу понять правильную настройку(и).
Вот информация о моем окружении:
Работает так, как нужно, на следующих системах (выводит список совпадений каждый раз, когда я нажимаю Tab)
zsh 4.3.12 (i386-apple-darwin11.2.0)
,Darwin macbookair 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 i386 MacBookAir4,2 Darwin
zsh 5.1.1 (i686-ubuntu-linux-gnu)
,Linux nuc2017 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:58:51 UTC 2017 i686 i686 i686 GNU/Linux
- новая установка Ubuntu
zsh 5.0.8 (x86_64-apple-darwin15.0)
,Darwin Sridhars-Mac-mini.local 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64 i386 Macmini6,1 Darwin
Не работает так, как хотелось бы (циклически переключает совпадения каждый раз, когда я нажимаю Tab)
zsh 5.1.1 (x86_64-ubuntu-linux-gnu)
,Linux nuc 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
- dist-upgraded мой Ubuntu с предыдущей версии
- OS X Sierra (информация о версии недоступна — установлена на моем рабочем компьютере)
Что я пробовал и что не работает:
unsetopt menu_complete
решение1
То, что вы ищете, этоsetopt noautomenu
Видетьhttps://serverfault.com/questions/109207/how-do-i-make-zsh-completion-act-more-like-bash-completionдля полного списка опций
решение2
Если у вас чистая установка Zsh, в ~/.zshrc
файле которой есть только это
autoload -Uz compinit && compinit -C
затем при первом нажатии клавиши Tab отображается список выполненных действий.
Однако, если вы добавите
unsetopt AUTO_LIST
затем этого больше не происходит и цикл завершения начинается немедленно.
Чтобы проверить, была ли эта опция отключена, выполните:
setopt
который показывает все параметры, которые отличаются от значений по умолчанию. Если вывод включает noautolist
, то он AUTO_LIST
был не установлен.