Как работают аргументы списка совпадений при завершении zsh zstyle? - PullRequest
6 голосов
/ 26 октября 2011

Я пытаюсь настроить мой ~ / .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 config.
  • Здесь у меня есть два аргумента, разделенных пробелом. Это означает, что zsh сначала попытается найти файлы, которые соответствуют первому аргументу, и, если ничего не найдено, будет пытаться найти файлы, которые соответствуют второму аргументу

И тут становится нечетко:

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

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

Спасибо

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

1 Ответ

3 голосов
/ 01 июля 2012
...