使用/或?能够在vim中找到单词的匹配项.但是我怎样才能找到完全匹配?例如,我的文本包含以下单词:a aa aaa aaaa aa和我输入/aa这将找到包含模式aa的所有字符串,但如果我想要找到确切的aa而不是aaaa aaaa什么?
要查找单个独立aa(不是a,aaa......),您需要在之前和之后断言该字符不匹配.这是通过负面的lookbehind(\@<!在Vim的正则表达式语法中)和lookahead(\@!)包含匹配本身(a\{2})来完成的:
/\%(a\)\@<!a\{2}\%(a\)\@!/
这些断言难以输入,如果匹配周围的边界也是非关键字/关键字边界,则可以使用较短的\<\a\{2}\>断言(如MosteM的答案),但这在一般情况下不起作用,例如xaax.