Поиск завершения аргумента в стиле «рыба» в ZSH

Поиск завершения аргумента в стиле «рыба» в ZSH

Я возился с рыбой и заметил это полезное поведение.

Если я набирал wget -<tab><tab><tab>, я попадал в интерактивное меню. Однако, когда я набирал, я искал описания самих аргументов. Я пробовал это в zsh, и ввод в этом меню, похоже, только возвращал меня к интерактивному приглашению. Есть ли способ добиться аналогичной функциональности в zsh?

решение1

Попробуйте вставить это в свой .zshrcфайл:

 # load module for list-style selection
 zmodload zsh/complist

 # use the module above for autocomplete selection
 zstyle ':completion:*' menu yes select

 # now we can define keybindings for complist module
 # you want to trigger search on autocomplete items
 # so we'll bind some key to trigger history-incremental-search-forward function
 bindkey -M menuselect '?' history-incremental-search-forward

Теперь, если вы наберете, wget -<tab>появится меню с автодополнениями. Мы определили сочетание клавиш для этого меню, поэтому, если вы нажмете, ?строка поиска появится поверх автодополнений:

davidsykora~%wget --referer
isearch: refe

Несколько дополнительных советов:

  • вы также можете определить bindkey -M menuselect '/' history-incremental-search-backwardдля обратного поиска
  • если нажать ?во время поиска еще раз, выбор перейдет к следующему результату поиска. Используйте /для перехода к предыдущему результату
  • требуется много настроек, чтобы заставить его работать так, как вам нужно, поэтому взгляните наcomplist документациячтобы найти дополнительные функции и опции
  • для меня обычно гораздо быстрее использовать vi-insertфункцию complist - она ​​фильтрует дополнения на основе того, что вы вводите.

решение2

Я думаю, это то, что вам нужно:

  zmodload zsh/complist
  setopt menucomplete
  zstyle ':completion:*' menu select=0 search

В этом случае список будет отображаться при нажатии клавиши Tab, а затем, если вы продолжите вводить текст, будет выполнен поиск доступных вариантов, включая описания, с помощью пошагового поиска.

Вас также может заинтересовать та же конфигурация, но с интерактивным вместо поиска. В этом случае по мере ввода он будет фильтровать дополнения, оставляя только те, которые соответствуют тому, что вы уже ввели.

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