假设我有一堆行:
@Override
public void draw(Graphics g) {
g.setColor(Color.MAGENTA);
g.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
g.setColor(Color.BLACK);
g.drawRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
}
当我想用 //
注释掉它们时(我更喜欢行注释而不是 block 注释),我所做的是:
- 将光标置于
@
前面符号 -
Ctrl-V
:切换进入 block 选模式 - 选择一直到
}
的列使用多次命中j
的右括号 -
Shift-I
: 进入 block 插入 - 类型
//
-
ESC
兴奋 -
Enter
完成命令
--> 这些行现在已被注释掉。
是否有一种不需要进行 block 选择的更简单的方法?我发现我可以使用类似 :'<, '>s/^/\/\///g
的替换但这有两个问题:
- 它的输入非常笨拙且容易出错(需要输入多个正斜杠和反斜杠) 逃脱)
- 它将注释符号 (
//
) 放在开头 该行(位置 0),不在第一个字符所在的位置 该行的内容是(因此缩进丢失)。
如何插入//
使用 Vi 在所选行的每行第一个字符的位置上?
最佳答案
您可以为 :substitute
定义自定义映射或命令。
但是,有几个评论器插件可以很好地做到这一点,并且这些插件是通用的(并且通常是可扩展的),因此它们适用于任何文件类型:
我强烈建议使用其中一个插件,而不是尝试自己重新发明一个糟糕的解决方案。
关于Vim 命令注释掉选定的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58536199/