在 VIM 中,我想删除不是 2 或 3 个字符的任何行。
:g/^..$/d
:g/^...$/d
Run Code Online (Sandbox Code Playgroud)
那些删除 2 或 3 个字符的行。如何将两者合二为一并取反,即'不要删除2或3个字符行'
您可以使用:v在与模式不匹配的行上执行命令。
这需要您使用单个模式......在您的情况下,您可以通过使用\=修饰符来选择匹配最后一个项目来轻松完成。
因此,要删除所有包含 2 个或 3 个字符的行,您可以使用:
:g/^...\=$/d
Run Code Online (Sandbox Code Playgroud)
并删除除2 或 3 个字符以外的所有行:
:v/^...\=$/d
Run Code Online (Sandbox Code Playgroud)
以下是我选择的正则表达式
\n:v/\\v^.{2,3}$/d\nRun Code Online (Sandbox Code Playgroud)\n\n选项:大小写\xc2\xa0不敏感
\n^.{2,3}\n{2,3}$