技巧77-界定单词的边界 学习笔记
- 在very magic搜索模式下,用<与>符号表示单词定界符。
- \w匹配单词类字符:包括字母、数字以及符号"_"。
- \W匹配除单词类字符以外的其他字符。
使用圆括号,但不捕获其内容
- 有时候只想使用圆括号的分组功能,但并不关系捕获的子匹配。例如可以使用下面的模式来匹配作者名字的两种形式。
/\v(And|D)rew Neil
- 如果不想捕获圆括号内的内容"And"或"D",可以在圆括号前面加上%,指示Vim不要将括号内的内容赋值给寄存器\1
/\v%(And|D)rew Neil
- 只有1个括号的情况下,上面2种方式似乎没有什么差别,但是有多个括号时,这种方法就很有用处了。
- 例如,想把所有的名和姓替换成姓和名:
/\v(%(And|D)rew) (Neil)
:s//\2, \1/g
- 可以用\W\ze\w模拟元字符<
- 可以用\w\ze\W表示元字符>
- 在very magic 模式下,<与>字符可直接解析为单词定界符,magic,nomagic以及very nomagic 搜索模式下,必须将它们转义。
- 在Vim文档中查阅这些选项,得在前面附加一个转义符:
:h \<
:h \>