在Vim中,如何在选择中的每一行的开头插入字符?
例如,假设我的语言的注释系统不允许像/* */这样的块注释,我想通过在每一行的开头预先添加//来注释掉一个代码块。我该怎么做呢?
在Vim中,如何在选择中的每一行的开头插入字符?
例如,假设我的语言的注释系统不允许像/* */这样的块注释,我想通过在每一行的开头预先添加//来注释掉一个代码块。我该怎么做呢?
当前回答
另一种方法对新人来说可能更容易:
some█
code
here
把光标放在第一行上,例如by
gg
然后输入以下命令进入插入模式并添加文本:
I / /空间
// █some
code
here
按Esc返回命令模式并使用有向图:
j。j。
// some
// code
//█here
J是一个运动命令,向下走一行。重复您所执行的最后一个编辑命令。
其他回答
这将在每一行的开头添加#:
:%s/^/#/
人们将不再抱怨你缺乏适当的注释脚本。
它将每一行的开头替换为"//":
:%s!^!//!
它将每一行的开头(使用可视模式选择)替换为"//":
:'<,'>s!^!//!
注意,gv(在正常模式下)恢复最后的可视选择,这有时很方便。
将注释区域标记为可视块(<C-V)
然后执行c#<ESC>p
改为“#” 放回去
如果你经常这样做,在你的.vimrc中定义一个快捷方式(例如\q)
:vmap \q c#<ESC>p
另一种方法对新人来说可能更容易:
some█
code
here
把光标放在第一行上,例如by
gg
然后输入以下命令进入插入模式并添加文本:
I / /空间
// █some
code
here
按Esc返回命令模式并使用有向图:
j。j。
// some
// code
//█here
J是一个运动命令,向下走一行。重复您所执行的最后一个编辑命令。
如果你想要更加花哨,把这个放在你的。vimrc中:
vmap \c :s!^!//!<CR>
vmap \u :s!^//!!<CR>
然后,无论何时在可视模式下,您都可以按\c来注释该块,按\u来取消注释。当然,你可以把这些快捷键击变成任何东西。