在 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
直接转到第 4 行,或者可能只是G
走到最后),然后键入I// <esc>
以一次在所有行上插入注释:
// This should be a comment.
// So should this.
// This is definitely a comment.
// Is this a comment? Yes.
此外,这里还有一个非常方便的评论者/取消评论者插件,它支持多种语言。这比手动插入/删除评论更容易。
试试这个:
做点什么
退出正常模式
键入,例如,22.
最后的命令将重复 22 次。
对于您的特定示例。您还可以使用范围.,.5s#^#//#
(执行此操作和接下来的 5 行)或视觉块(点击 v,然后选择所需的文本),然后使用:%s#^#//#
.
另一种方法是设置标记并在该范围内运行替换:
嘛 jjjj mb :'a,'bs,^,// ,