Comme @muru l'a mentionné dans le commentaire , vous pouvez utiliser une classe d'équivalence (décrite dans :help /[[) qui semble être une expression de classe de caractères évaluée comme un ensemble de caractères similaires (c'est-à-dire qui sont les mêmes une fois que vous supprimez tout accent / diacritique).
Par exemple, pour rechercher kočičkaet kocickaavec le même modèle, vous pouvez utiliser ceci:
ko[[=c=]]i[[=c=]]ka
où [[=c=]]est la classe d'équivalence du cpersonnage.
Pour insérer automatiquement cette classe de caractères à chaque fois que vous frappez clors d'une recherche, vous pouvez utiliser ce mappage:
cnoremap <expr> c getcmdtype() =~ '[?/]' ? '[[=c=]]' : 'c'
qui peut être décomposé comme ceci:
<expr> taper l'évaluation d'une expression
getcmdtype() =~ '[?/]' tester si vous écrivez une recherche en arrière ou en avant
'[[=c=]]'renvoie la classe d'équivalence du ccaractère si le test précédent a réussi
'c'retourner le ccaractère sinon
La cartographie précédente présente 2 inconvénients:
- il ne couvre que le
cpersonnage
- cela peut rendre le motif difficile à lire
Il pourrait être amélioré en remappant <CR>comme ceci:
cnoremap <CR> <C-\>e getcmdtype() =~ '[?/]' ? substitute(getcmdline(), '\a', '[[=\0=]]', 'g'): getcmdline()<CR><CR>
Lorsque vous appuyez <CR>après avoir écrit un modèle pour une recherche, le mappage remplacera automatiquement tous les caractères alphabétiques par leur homologue de classe d'équivalence.
Le mappage pour <CR>est similaire au mappage précédent pour c, sauf qu'il n'utilise pas l'argument <expr>mais le mappage système <C-\>e.
<expr>vous permet d'insérer l'évaluation d'une expression, tout en <C-\>evous permettant de remplacer la ligne de commande entière par l'évaluation d'une expression.
:h [[=et:h patterns-composing.