Додайте рядки до завершення вкладки zsh для всіх команд і аргументів


3

Я хочу додати ключові слова foo і bar буде додано до результатів автоматичного завершення для будь-якої команди або аргументу.

наприклад:

cd <TAB> повинні надавати foo і bar в пропозиціях на додаток до існуючих завершень

blah <TAB> повинні надавати foo і bar в пропозиціях на додаток до існуючих завершень.

Статті з завершенням zsh, про які я читав, згадують способи додавання завершення до конкретних команд, але ніхто не згадує, як додати набір слів до глобальних завершень (або якщо є глобальний список завершення, який завжди існує)

Відповіді:


3

Потрібно було копатися в керівництві zshcompsys, щоб з'ясувати правильні команди

Наведений нижче код в кінці ~ / .zshrc працює для мене

function _my_completions() {
  local -a mywords
  mywords=( foo bar )
  compadd -a mywords
}
compdef _my_completions -first-

Важливим тут є контекст -first- . Як за zshcompsys man page

-first-
     This is tried before any other completion function.  The function called may set the _compskip parameter 
     to one of various values: all: no further completion is attempted; a string containing the 
     substring patterns: no pattern completion functions will be called; a string containing default: the
     function for the `-default-' context will not be called, but functions defined for commands will

Дякуємо, ми використали це для інтеграції zsh-autosuggesion із системою завершення: gist.github.com/olejorgenb/678ddc534c157ffb7c61151cf8eb8d03
olejorgenb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.