Vim 技巧 - 界定单词的边界
在我们定义模式时,如果能指定单词从哪里开始到哪里结束的话,将会非常有用。Vim 的单词定界符可以帮助我们做到这一点。
有些单词,尤其是短词,常常出现在其他单词内部。比如,“the”就会在“these”、“they”、“their”等单词中出现。因此,如果我们在下面这段文本中执行 /the<CR> 进行查找的话,会发现实际匹配的内容比我们预想得要多。

如果我们想明确匹配“the”这个完整的单词而不是其他词的组成部分,可以使用单词定界符。用 \< 与 \> 符号表示单词定界符。因此,如果我们将查找命令改为 /\<the\><CR> 的话,文中就只会出现一处匹配了。
VSCodeVim 还支持使用 \b 代替 \< 与 \>,当然,从技术上讲,这并不完全正确,但从书写上来讲,确实比较方便了一些
这些就是所谓的零宽度元字符,它们本身不匹配任何字符,仅表示单词与围绕此单词的空白字符(或标点符号)之间的边界。
即使我们还没养成用单词定界符构造查找模式的习惯,但每当我们使用 * 或者 # 命令(参见:h *)时就会间接地用到它们。这两条查找命令分别用于正向或反向查找光标下的单词。假设我们刚刚用过这两条命令中的某一个,在查看查找历史(按 /<UP>)时就会发现,上一次的查找模式就被单词定界符围在中间。顺便说一句,g* 与 g# 这两种变体将执行同样的查找,但不会使用单词定界符。
编辑 (opens new window)
上次更新: 5/27/2023, 1:02:05 PM