Добавить строки в zsh tab для всех команд и аргументов
Я хочу добавить ключевые слова foo
а также bar
быть добавленным к результатам автозаполнения для любой команды или аргумента.
например:
cd <TAB>
должен дать foo и bar в предложениях в дополнение к существующим дополнениям
blah <TAB>
следует дать foo и bar в предложениях в дополнение к существующим дополнениям.
Статьи о завершении zsh, которые я читал, упоминают методы упоминания о добавлении дополнений к определенным командам, но ни в одной не упоминается, как добавить набор слов в глобальные дополнения (или, если существует глобальный список завершения, который всегда существует)
1 ответ
Пришлось копаться в руководстве 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