如何在Vim中批量注释C++中DEBUG标记间的代码
Vim注释DEBUG代码块的命令修复方案
你遇到的E492错误,是因为:g命令的范围语法使用错误。原命令里用#作为分隔符时,范围部分的写法不符合Vim的语法规则,导致Vim无法识别后续的命令。
正确的命令写法
方法一:使用#作为分隔符(修正范围语法)
:g#^.*// XXX DEBUG#,#^.*// XXX END DEBUG#-1normal I//
- 语法说明:
#^.*// XXX DEBUG#:匹配所有包含// XXX DEBUG的行,#^.*// XXX END DEBUG#-1:指定操作范围为当前匹配行到**// XXX END DEBUG行的上一行**(-1避免给结束注释行也加前缀)normal I//:在范围每一行的行首插入//
方法二:使用/作为分隔符(转义正则中的/)
如果觉得#分隔符容易混淆,也可以用默认的/,但需要转义代码中的//:
:g/^.*\/\/ XXX DEBUG/.,/^.*\/\/ XXX END DEBUG/-1normal I//
效果验证
执行上述命令后,你的代码块会被处理成预期的形式:
// XXX DEBUG // printf("example code"); // int y = 6; // XXX END DEBUG
内容的提问来源于stack exchange,提问作者John Icke
相关产品推荐
相关产品推荐

