3

Я хочу добавить ключевые слова foo и bar которые будут добавлены в результаты автозаполнения для любой команды или аргумента.

например:

cd <TAB> должен давать foo и bar в предложениях в дополнение к существующим дополнениям

blah <TAB> должен давать foo и bar в предложениях в дополнение к существующим дополнениям.

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

1 ответ1

3

Пришлось копаться в руководстве zshcompsys, чтобы узнать правильные команды

Приведенный ниже код в конце ~/.zshrc работает для меня

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

Важным флагом здесь является контекст -first- . Согласно справочной странице zshcompsys

-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

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