匹配一个单词可以使用
\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ść
顺便说一句,如果您确实使用了Perl,
—
沃伦·杨
\p{Word}
则要使用POSIX字符类代替。Perl的POSIX字符类处理中有很多异常情况,当您改用Unicode属性时可以避免这种情况。
[[:alpha:]]\+
在这种情况下)应该可以满足您的要求,但是根据Vim docs(:help regex
)的说法,它不是:“这些项目仅适用于8位字符。” 它确实可以在OS X 10.8上的Vim 7.3上运行,但是在Linux上的Vim 7.3不能正常工作,因此我认为该Vim有某些特定于Apple的功能允许它。您还会发现,即使Perl具有很好的Unicode支持,通过Vim Perl绑定执行操作也会失败。您可能需要切换到外部Perl脚本,因此可以打开完整的Unicode支持。