在Vim中,我通常会重复一些命令,比如说,我想注解5行,我会使用
I//<Esc>j .j.j.j.j
有没有办法把最后的“.j”部分重复几次?
4sup72z81#
一种方法是将键序列分配给宏,然后运行一次宏,然后执行@@ run-last-macro命令。例如:
@@
qa.jq@a@@
如果你知道你想重复这个宏多少次,你可以使用4@@或者其他什么。
4@@
34gzjxbg2#
您可以直观地选择要重复的行,键入:normal! .使vim在每行上使用.。因为您是从视觉选择开始的,所以最终看起来像这样:
:normal! .
.
:'<,'>normal! .
但是,如果您要添加和删除很多//注解,您可能会发现以下Map很有用:
//
" 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,直到您注解完您想要的所有内容。
5K
K
pkbketx93#
关于您的具体示例,我更喜欢使用可视块模式(使用Ctrl-v访问)执行多行插入。例如,如果我有以下行:
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直接转到第4行,或者简单地G转到末尾),然后输入I// <esc>一次在所有行插入注解:
3j
4g
G
I// <esc>
// This should be a comment. // So should this. // This is definitely a comment. // Is this a comment? Yes.
另外,还有一个非常方便的注解/取消注解插件,它支持多种语言here。这比手动插入/删除注解更容易。
zxlwwiss4#
试试这个:1.做点什么1.退出正常模式1.类型,例如22.最后的命令将重复22次。
22.
htzpubme5#
对于您的特定示例,您也可以使用范围.,.5s#^#//#(完成此操作和接下来的5行)或视觉块(点击v,然后选择您想要的文本),然后是:%s#^#//#。
.,.5s#^#//#
:%s#^#//#
h7appiyu6#
另一种方法是设置标记并在该范围内运行替换:
ma jjjj mb :'a,'bs,^,// ,
23c0lvtd7#
您可以通过在宏之前附加计数来重复宏。例如,如果您将宏记录到a寄存器,并且您希望执行五次,则可以键入以下内容:
a
5@a
7条答案
按热度按时间4sup72z81#
一种方法是将键序列分配给宏,然后运行一次宏,然后执行
@@
run-last-macro命令。例如:如果你知道你想重复这个宏多少次,你可以使用
4@@
或者其他什么。34gzjxbg2#
您可以直观地选择要重复的行,键入
:normal! .
使vim在每行上使用.
。因为您是从视觉选择开始的,所以最终看起来像这样:但是,如果您要添加和删除很多
//
注解,您可能会发现以下Map很有用:您可以使用
5K
注解5行,您可以使用可视化模式首先选择您的行,或者您可以只敲击K
,直到您注解完您想要的所有内容。pkbketx93#
关于您的具体示例,我更喜欢使用可视块模式(使用
Ctrl-v
访问)执行多行插入。例如,如果我有以下行:我会转到最上面一行的第一个字符,点击
Ctrl-v
进入视觉块模式,导航到最后一行(可能使用3j
向下移动3行,可能使用4g
直接转到第4行,或者简单地G
转到末尾),然后输入I// <esc>
一次在所有行插入注解:另外,还有一个非常方便的注解/取消注解插件,它支持多种语言here。这比手动插入/删除注解更容易。
zxlwwiss4#
试试这个:
1.做点什么
1.退出正常模式
1.类型,例如
22.
最后的命令将重复22次。
htzpubme5#
对于您的特定示例,您也可以使用范围
.,.5s#^#//#
(完成此操作和接下来的5行)或视觉块(点击v,然后选择您想要的文本),然后是:%s#^#//#
。h7appiyu6#
另一种方法是设置标记并在该范围内运行替换:
23c0lvtd7#
您可以通过在宏之前附加计数来重复宏。例如,如果您将宏记录到
a
寄存器,并且您希望执行五次,则可以键入以下内容: