Pour faire correspondre un mot, on peut utiliser
\v(\w+)
Depuis l'aide de vim :h \w
:
\ w caractère de mot: [0-9A-Za-z_]
Cela fonctionne exactement comme décrit dans le manuel. Cependant, je veux faire correspondre des mots qui contiennent des caractères au a-z
- delà , par exemple
prästgården . La correspondance de l'expression régulière \v(\w+)
contre
prästgården donne lieu à trois correspondances, au lieu de cela:
prästgården
^^ ^^^ ^^^^
Comment faire correspondre des mots contenant des caractères au a-z
- delà ? Mon environnement local est défini sur l'anglais et si possible, je voudrais que cela reste ainsi.
Modifier: les mots peuvent ne pas appartenir à un seul lieu, par exemple
prästgården
treść
\p{Word}
place d'une classe de caractères POSIX. Il existe de nombreux cas d'exception dans la gestion des classes de caractères POSIX de Perl, que vous évitez lorsque vous utilisez des propriétés Unicode à la place.
[[:alpha:]]\+
dans ce cas) sont censées faire ce que vous voulez ici, mais selon les documents Vim (:help regex
), cela ne fonctionne pas: "Ces éléments ne fonctionnent que pour les caractères 8 bits." Il se trouve que cela fonctionne ici avec Vim 7.3 sur OS X 10.8, mais Vim 7.3 sur Linux ne fonctionne pas, donc je suppose qu'il y a quelque chose d'Apple spécifique à ce Vim qui le permet. Vous constaterez également que le faire via la liaison Vim Perl échoue également, même si Perl a une très bonne prise en charge Unicode. Vous devrez peut-être basculer vers un script Perl externe, afin de pouvoir activer la prise en charge complète d'Unicode.