繁体   English   中英

如何结合和否定这两种模式?

[英]How to combine and negate these two patterns together?

在 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

在线试用!

选项:不区分大小写

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM