Как настроить регистронезависимое дополнение кириллических имён файлов в zsh?

Не получается сделать дополнение русскоязычных имён файлов и директорий без учёта регистра. С англоязычными проблем нет. В гугле найдены следующие опции:
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} r:|[._-]=** r:|=**'
zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate

Первая строка сама по себе не исправляет ситуацию с кириллицей, во второй самый значимый параметр — _approximate. Но он решает проблему частично, пытаясь угадать правильный вариант, но не дополнить. Например, у меня есть два каталога: «Шаблоны» и «Санитары», оба с большой буквы. Если я пишу ls са и нажимаю Tab, предлагается дополнение «Шаблоны», тогда как Са дополняется корректно до «Санитары». Если же написать сан, тогда разворачивается правильно в «Санитары». Это не соответствует поведению с англоязычными названиями, а также поведению при дополнении названий с изначально совпадающим регистром.
  • Вопрос задан
  • 330 просмотров
Пригласить эксперта
Ответы на вопрос 2
sam002
@sam002
Линуксойд, кодер, немного физик.
Может прокатит?
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]а-яА-Я}={[:upper:][:lower:]А-Яа-я}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
Ответ написан
Albibek
@Albibek
Вопросы есть? А если найду?
У вас нет проблемы учета регистра при поиске совпадения. У вас же всё вернодо полняется по "сан". Совпадение с "Шаблоны" может происходить из-за опций approximate или correct. zsh считает, что вы ошиблись и хотели набрать "ша". Может быть, есть возможность как-то поменять приоритет модулей дополнения. Например, чтобы сначала срабатывала проверка регистра, и только потом уже коррекция.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы