首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Vim上重复一定次数的动作?

如何在Vim上重复一定次数的动作?
EN

Stack Overflow用户
提问于 2010-07-14 04:17:24
回答 4查看 16.7K关注 0票数 27

在Vim中,我通常想要多次重复一系列命令。比如说,我想注释5行,我会使用

代码语言:javascript
复制
I//<Esc>j
.j.j.j.j

有没有办法把最后的".j“部分重复几次?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-14 04:23:13

执行此操作的一种方法是将您的按键序列分配给宏,然后运行宏一次,然后执行@@ run -last-宏命令。例如:

代码语言:javascript
复制
qa.jq@a@@

如果你知道你想重复这个宏多少次,你可以使用4@@或者其他任何东西。

票数 41
EN

Stack Overflow用户

发布于 2010-07-14 08:36:01

您可以直观地选择要重复的行,键入:normal! .以使vim在每行上使用.。因为您从视觉选择开始,所以它最终看起来如下所示:

代码语言:javascript
复制
:'<,'>normal! .

但是,如果您经常添加和删除//注释,您可能会发现以下映射很有用:

代码语言:javascript
复制
" 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,直到注释完所有您想要的内容。

票数 16
EN

Stack Overflow用户

发布于 2010-07-14 05:07:08

对于您的特定示例,我更喜欢使用可视块模式(使用Ctrl-v访问)进行多行插入。例如,如果我有以下几行代码:

代码语言:javascript
复制
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>一次在所有行上插入注释:

代码语言:javascript
复制
// This should be a comment.
// So should this.
// This is definitely a comment.
// Is this a comment? Yes.

此外,还有一个非常方便的注释/取消注释插件,它支持多种语言的here。这比手动插入/删除注释更容易。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3241136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档