Як згадується @muru в коментарі , ви можете використовувати клас еквівалентності (описаний у :help /[[), який, здається, є виразом класу символів, який оцінюється як набір подібних символів (тобто є однаковими, як тільки ви видалите будь-який акцент / діакритичний).
Наприклад, щоб шукати kočičkaі kocickaз тим самим малюнком, ви можете скористатися цим:
ko[[=c=]]i[[=c=]]ka
де [[=c=]]клас еквівалентності cсимволу.
Щоб автоматично вставити цей клас символів cпід час натискання під час пошуку, ви можете використовувати це відображення:
cnoremap <expr> c getcmdtype() =~ '[?/]' ? '[[=c=]]' : 'c'
які можна розбити так:
<expr> введіть оцінку виразу
getcmdtype() =~ '[?/]' перевірити, чи записуєте ви назад чи назад
'[[=c=]]'повернути клас еквівалентності cсимволу, якщо попередній тест був успішним
'c'повернути cперсонаж інакше
Попереднє відображення має 2 недоліки:
- вона охоплює лише
cхарактер
- це може ускладнити читання візерунка
Це можна покращити шляхом перестановки <CR>таким чином:
cnoremap <CR> <C-\>e getcmdtype() =~ '[?/]' ? substitute(getcmdline(), '\a', '[[=\0=]]', 'g'): getcmdline()<CR><CR>
Коли ви натиснете <CR>після написання шаблону для пошуку, відображення автоматично замінить усі алфавітні символи їх аналогом класу еквівалентності.
Відображення <CR>подібне до попереднього відображення, за cвинятком того, що воно не використовує аргумент, <expr>а системне відображення <C-\>e.
<expr>дозволяє вставити оцінку виразу, в той час як <C-\>eдозволяє замінити весь командний рядок оцінкою виразу.
:h [[=та:h patterns-composing.