Как аргументы списка сопоставления работают при завершении zsh zstyle?

#zshrc

#zshrc

Вопрос:

Я пытаюсь настроить свой ~/.zshrc, чтобы завершение кода в файлах / каталогах работало так, как мне нужно. Я нашел в Интернете различные источники по синтаксису завершения zstyle и пример кода, но некоторые его части по-прежнему являются для меня черной магией.

Пока что я здесь, после некоторой возни и тестирования :

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'

Вот что я понял из этого :

  • zstyle ':completion:*' означает, что мы собираемся определить значение конфигурации для завершения
  • matcher-list это конфигурация, которую мы обновляем, здесь она определяет, как zsh сопоставляет файлы / каталог, чтобы предложить
  • 'm:{a-zA-Z}={A-Za-z}' 'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*' являются ли аргументы (значения) для передачи в matcher-list конфигурацию.
  • Здесь у меня есть два аргумента, разделенных пробелом. Это означает, что zsh сначала попытается найти файлы, соответствующие первому аргументу, и, если он ничего не нашел, попробует файлы, соответствующие второму аргументу

И здесь это становится нечетким :

  • Я понимаю, что 'm:{a-zA-Z}={A-Za-z}' это делает совпадение нечувствительным к регистру, но я не совсем понимаю синтаксис.
  • Я также понимаю, что 'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*' по-прежнему не чувствителен к регистру, но также ищу совпадение во всей строке, а не только в начале. Но я тоже не понимаю синтаксис.

Может ли кто-нибудь подтвердить мои предыдущие утверждения и исправить их, если это необходимо, а также подробно описать синтаксис аргументов voodoo?

Спасибо

Редактировать: О, и извините, если вопрос больше подходит для superuser.com Мне было трудно понять, какой сайт лучше подходит для этого.

Ответ №1:

Привет, документ zsh для этого находится по адресу

http://zsh.sourceforge.net/Doc/Release/Completion-Widgets.html#Completion-Matching-Control