Чтобы соответствовать слову можно использовать
\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. Существует много исключений в обработке Perl-символов POSIX, которых вы избегаете, когда вместо этого используете свойства Unicode.
[[:alpha:]]\+
в данном случае) должны делать то, что вы хотите, но в соответствии с Vim docs (:help regex
) этого не происходит: «Эти элементы работают только для 8-битных символов». Это действительно работает здесь с Vim 7.3 на OS X 10.8, но Vim 7.3 на Linux не работает, поэтому я предполагаю, что в этом Vim есть что-то специфическое для Apple, что позволяет. Вы также обнаружите, что выполнить это через привязку Vim Perl также не удается, хотя Perl имеет очень хорошую поддержку Unicode. Возможно, вам потребуется переключиться на внешний сценарий Perl, чтобы включить полную поддержку Unicode.