在vim中,我如何搜索不以(在此情况下)单词“DROP”结尾的任何行?
/\(DROP\)\@<!$
这里使用了零宽度负回顾断言。它仅查找换行符,并且只查找前面没有紧跟着DROP
的换行符。
如果你想查找整行,可以使用:
/^.*\(DROP\)\@<!$
\( .. \)
将DROP
包围起来,因为向前查找和向后查找断言只会匹配一个“原子”。因此,您使用括号将单词分组为单个原子。/DROP\@<!$
,那么您将获得以下粗体部分的搜索结果:
这个页面有一个关于这些断言的教程,但它没有使用VIM正则表达式语法:
您也可以在VIM中输入此命令以获取帮助:
:help \@<!
\@=
\@<=
\@!
:global
可能会有用::v/\(DROP\)$/norm ADROP
会将DROP
添加到每一行末尾不是以DROP
结尾的行。 - romainl