如果我想要所有带有文本“ruby”但不带有“myruby”的行,那么这就是我要做的。
:g/\<ruby\>/
我的问题是这里的小于和大于符号是什么意思?我唯一使用过的正则表达式是在 ruby 编程时使用的。
同样,如果我想找到三个连续的空白行,那么这就是我要做的
/^\n\{3}
我的问题是为什么我要转义第一个大括号(左大括号)但不转义第二个大括号(右大括号)?
Vim 正则表达式中反斜杠转义的规则并不一致。你必须转义左大括号\{...}
, but [...]
根本不需要转义,并且捕获组是\(...\)
(转义左括号和右括号)。还有其他不一致之处。
值得庆幸的是,Vim 允许您通过正则表达式逐个正则表达式地更改此行为magic
设置。如果你把\v
在正则表达式的开头,转义规则变得更加一致;除了数字、字母和下划线之外,一切都是“魔法”的,因此不需要反斜杠,除非您想插入除这些字符之外的文字字符。
你的第一个例子就变成了:g/\v<ruby>/
你的第二个例子变成/\v^\n{3}
. See :h /magic
and :h /\v
了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)