Щоб відповідати слову, можна використовувати
\v(\w+)
З довідки vim :h \w
:
\ w символ слова: [0-9A-Za-z_]
Це працює саме так, як описано в посібнику. Однак я хочу відповідати словам, що містять символи a-z
, що знаходяться за межами , наприклад,
prästgården . Зіставлення регулярного виразу \v(\w+)
проти
prästgården поступається на три матчі:
prästgården
^^ ^^^ ^^^^
Як зіставити слова, що містять символи за межами a-z
? Моя мова визначена англійською мовою, і, якщо можливо, я хотів би зберегти її таким чином.
Редагувати: слова можуть не належати до однієї мови, наприклад
prästgården
treść
\p{Word}
замість класу символів POSIX. У обробці класів символів POSIX Perl дуже багато випадків винятків, яких ви уникаєте, якщо замість цього використовуєте властивості Unicode.
[[:alpha:]]\+
у цьому випадку) повинні робити все, що ви хочете тут, але згідно з документами Vim (:help regex
), це не так: "Ці елементи працюють лише для 8-бітових символів." Тут трапляється працювати з Vim 7.3 на OS X 10.8, але Vim 7.3 в Linux не працює, тому я припускаю, що в цьому Vim є щось специфічне для Apple, що це дозволяє. Ви також виявите, що зробити це через прив'язку Vim Perl також не вдається, навіть якщо Perl має дуже хорошу підтримку Unicode. Вам може знадобитися перейти на зовнішній скрипт Perl, щоб ви могли увімкнути повну підтримку Unicode.