Вы можете настроить систему завершения подробно с помощью встроенного zstyle
. По умолчанию, завершение только пытается добавить суффикс, но вы можете изменить его с помощью стиля matcher-list
. Чтобы применить стиль ко всем дополнениям:
zstyle ':completion:*' matcher-list …
Чтобы применить стиль, только когда контекст является командой и только для команд, которые являются функциями:
zstyle ':completion:*:*:-command-:*:functions matcher-list …
Что следует за matcher-list
, это список спецификаций управления соответствием завершения . Zsh пробует их по порядку и останавливается, как только находит совпадение. Используйте пустую спецификацию, чтобы просто добавить суффикс; вы обычно хотите это сначала, за исключением очень специфических c контекстов, где это затрудняет достижение некоторых завершений. Вы можете использовать спецификацию r
, чтобы разрешить частичное завершение слева от символов пунктуации: r:|[-+./_]=*
означает, что если строка для завершения содержит один из символов -+./_
, у соответствующего завершения может быть что угодно (что угодно *
, что соответствует всему) слева от этого знака препинания. Например, qq-tcp
Tab завершает все, что соответствует qq*-tcp*
(окончательный *
от обычного завершения суффикса).
zstyle ':completion:*' matcher-list '' 'r:|[-+./_]=*'
Вы можете активировать это с помощью интерактивной базы c интерфейс настройки compinstall
в разделе «Контроль соответствия» как «завершение частичного слова».