如何在Vim上重复某些动作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Vim上重复某些动作?相关的知识,希望对你有一定的参考价值。
在Vim中,我通常想重复执行一系列命令。说,我想评论5行,我会使用
I//<Esc>j
.j.j.j.j
有没有办法重复最后的“ .j”部分几次?
答案
执行此操作的一种方法是将键序列分配给宏,然后在运行@@
run-last-macro命令后运行一次宏。例如:
qa.jq@a@@
如果知道要重复多少次宏,则可以使用4@@
或其他方式。
另一答案
您可以在视觉上选择要在其上重复的行,键入: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
直到注释完所有内容。
另一答案
关于您的特定示例,我更喜欢使用可视块模式(通过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。比手动插入/删除注释要容易。
另一答案
对于您的特定示例。您还可以使用范围.,.5s#^#//#
(执行此操作以及接下来的5行)或可视块(按v键,然后选择所需的文本),然后使用:%s#^#//#
。
另一答案
另一种方法是在该范围内设置标记并进行替换:
maj兆字节:'a,'bs,^,//,
另一答案
尝试一下:
做某事
退出普通模式
类型,例如,
22.
最后一个命令将重复22次。
以上是关于如何在Vim上重复某些动作?的主要内容,如果未能解决你的问题,请参考以下文章