如何将这两种模式结合起来并加以否定

  • 本文关键字:起来 结合 两种 模式 vim
  • 更新时间 :
  • 英文 :


在VIM中,我想删除任何不是2或3个字符的行。

:g/^..$/d
:g/^...$/d

这些删除了2或3个字符行。如何将两者合二为一并否定,即"不要删除2或3个字符行">

您可以使用:v在与模式不匹配的行上执行命令。

这需要你使用一个单一的模式。。。在您的情况下,您可以通过使用=修饰符来选择性地匹配最后一项,从而轻松地做到这一点。

因此,要删除所有包含2或3个字符的行,可以使用:

:g/^...=$/d

删除所有行,包含2或3个字符的行除外:

:v/^...=$/d

下面是我选择的正则表达式

:v/v^.{2,3}$/d

在线试用!

选项:不区分大小写的

  • 断言字符串^开头的位置
  • 匹配任意单个字符.{2,3}
    • 在2到3次之间,尽可能多次,根据需要回馈(贪婪({2,3}
  • 断言字符串$最后的位置

怎么样"删除所有少于两个或多于三个字符的行";?

:g/^.{,1}$|^.{4,}/d

相关内容

最新更新