Дополнения с использованием compctl
Данный метод аналогичен по настройке тем дополнениям, что применяются в csh & tcsh и является немного устаревшим, так что новые пользователи скорее всего предпочтут использовать другие методы определения дополнений, но он все равно поддерживается текущими версиями zsh.
Задание дополнений с помощью данного метода имеет общую форму
compctl ключи [command ...]
Определение дополнения начинается с ключевого слова compctl и заканчивается списком команд для которых будет действовать дополнение.
Ключи определяют типы параметров которые будут подпадать под дополнение (ключи командной строки, списки выполняемых заданий, и т.п.).
Ключ -k указывает, что параметры, которые будут дополняться, будут переданы в массиве. Это ключ очень полезен, когда у вас списки параметров приведены в файле, или заданы в явной форме. Так, можно явно задать список серверов, имена которых будут дополняться при использовании команды ssh.
compctl -k "( server1 server2 )" ssh
в том случае, если у вас много серверов, то вы можете перечислить их в файле и вместо явного перечисления указать в скобках команду для получения содержимого нужного файла (в нашем примере пусть это будет ~/.servers):
compctl -k "( ` cat ~/.servers ` )" ssh
Ключ -K позволяет пользователю указать функцию, которая будет вызываться для получения списка дополняемых параметров.
Другие ключи команды compctl описаны в справочном руководстве по zsh.