Рыбоподобный поиск завершения аргумента в ZSH

dpkg --audit

   -C, --audit [package-name...]
          Performs database sanity and consistency checks for package-name
          or all packages if omitted (per package checks since dpkg 1.17.10).
          For example, searches for  packages  that  have been installed only
          partially on your system or that have missing, wrong or obsolete
          control data or files. dpkg will suggest what to do with them  to
          get them fixed.

источник: man dpkg

8
29.05.2017, 01:02
2 ответа

Я думаю, это делает то, что вы хотите:

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

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

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

1
27.01.2020, 20:13

Попробуйте поместить это в свой .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функцию списка компиляции -она фильтрует завершения на основе того, что вы вводите.
2
27.01.2020, 20:13

Теги

Похожие вопросы