在Vim中,如何在选择中的每一行的开头插入字符?

例如,假设我的语言的注释系统不允许像/* */这样的块注释,我想通过在每一行的开头预先添加//来注释掉一个代码块。我该怎么做呢?


当前回答

如果有人的多行选择实际上是一个段落,则不需要手动选择行。Vim可以为您做到这一点:

Vip:选择并标记整个段落 Shift-i:在行首插入文本 转义:离开插入模式/进入正常模式[行开头仍然选中] 转义:取消选择行开头

其他回答

如果有人的多行选择实际上是一个段落,则不需要手动选择行。Vim可以为您做到这一点:

Vip:选择并标记整个段落 Shift-i:在行首插入文本 转义:离开插入模式/进入正常模式[行开头仍然选中] 转义:取消选择行开头

另一种方法对新人来说可能更容易:

 some█
 code
 here

把光标放在第一行上,例如by

gg

然后输入以下命令进入插入模式并添加文本:

I / /空间

 // █some
 code
 here

按Esc返回命令模式并使用有向图:

j。j。

 // some
 // code
 //█here

J是一个运动命令,向下走一行。重复您所执行的最后一个编辑命令。

它将每一行的开头替换为"//":

:%s!^!//!

它将每一行的开头(使用可视模式选择)替换为"//":

:'<,'>s!^!//!

注意,gv(在正常模式下)恢复最后的可视选择,这有时很方便。

在每行开头插入“ABC”:

进入命令模式 %定额I ABC

这将在每一行的开头添加#:

:%s/^/#/

人们将不再抱怨你缺乏适当的注释脚本。