在你的情况下,@Taky 的解决方案是我认为最好的,但我注意到一些关于 vim 正则表达式的评论。最近几天我研究了这个,所以也许把它写下来是个好主意。
在 vimworld 中,使用 eg*
和^
正$
则表达式的特殊字符被称为“魔法”(set magic
默认)。默认+
不是正则表达式字符,必须用于\+
表示“正则表达式+”。然而,只要稍加改动,它也可能是“神奇的”,请阅读:vim 帮助 - 搜索模式(与 vim 编辑器中的相同,但作为 HTML,并且顶部具有良好的搜索功能)。
另见vim 帮助 - 模式
这是一个简短的指南(规则在列表中被否决):
设置:
:set ignorecase
在搜索和替换
:set smartcase
中忽略大小写,只要不使用大写字母就忽略大小写(ignorecase
必须打开才能工作)。
:set magic
能够将某些字符用作正则表达式特殊字符,例如*
,而不必在它们前面加上\
. 这是默认的(我认为)。
搜索模式中的规则(否决设置)
\c
忽略大小写,\C
区分大小写
使用例如/\cxxx
“忽略大小写”,/\Cxxx
区分大小写(与替换语法中\c
的标志相同。使用“魔术”(与设置相同),没有“魔术” . i
s/xxx/yyy/i
\m
magic
\M
这是在 vim 模式中使用的有趣部分+
:
\v
被描述为“非常神奇”,我认为这就是我们在使用 regexp 时所习惯的。
\V
“非常nomagic”,ALL是字面意思,只有\
特殊含义。
现在,+
可以像 in 一样直接使用/\v\s+print
(但对你来说,最好*
在那种特殊情况下使用,+
不会找到开始该行的“插件”)。
例如,如果不使用,{
表达式也必须有。\
\v
提示:在 .vimrc 中进行这些映射以始终\v
在搜索模式中使用:
" To get 'normal' behavior for regexps (use "\V" to avoid)
nnoremap / /\v
vnoremap / /\v
\v
(而且在不需要的时候很容易“退格” )。