在Vim中,我通常想要多次重复一系列命令。比如说,我想注释5行,我会使用
I//<Esc>j
.j.j.j.j
有没有办法把最后的".j“部分重复几次?
发布于 2010-07-14 04:23:13
执行此操作的一种方法是将您的按键序列分配给宏,然后运行宏一次,然后执行@@
run -last-宏命令。例如:
qa.jq@a@@
如果你知道你想重复这个宏多少次,你可以使用4@@
或者其他任何东西。
发布于 2010-07-14 08:36:01
您可以直观地选择要重复的行,键入:normal! .
以使vim在每行上使用.
。因为您从视觉选择开始,所以它最终看起来如下所示:
:'<,'>normal! .
但是,如果您经常添加和删除//
注释,您可能会发现以下映射很有用:
" add // comment with K
noremap K :s,^\(//\)\=,//,e <BAR> nohls<CR>j
" remove // comment with CTRL+K
noremap <C-K> :s,^//,,e <BAR> nohls<CR>j
您可以使用5K
注释5行,也可以使用视觉模式首先选择您的行,或者您可以直接使用K
,直到注释完所有您想要的内容。
发布于 2010-07-14 05:07:08
对于您的特定示例,我更喜欢使用可视块模式(使用Ctrl-v
访问)进行多行插入。例如,如果我有以下几行代码:
This should be a comment.
So should this.
This is definitely a comment.
Is this a comment? Yes.
我会转到第一行的第一个字符,点击Ctrl-v
进入视觉块模式,导航到最后一行(可能使用3j
向下移动3行,可能使用4g
直接转到第四行,或者简单地输入G
转到末尾),然后输入I// <esc>
一次在所有行上插入注释:
// This should be a comment.
// So should this.
// This is definitely a comment.
// Is this a comment? Yes.
此外,还有一个非常方便的注释/取消注释插件,它支持多种语言的here。这比手动插入/删除注释更容易。
https://stackoverflow.com/questions/3241136
复制相似问题