我想知道vim专家如何在vim中使用宏来进行日常编码 - 我经常使用很多自定义快捷方式/映射,但是没有遇到任何好的宏观想法。
它可能是您之前使用的宏,非常简化任务 - 我只需要了解如何在vim中有效地使用此功能!
答案 0 :(得分:4)
宏通常是“即时”自动化工具。假设您有一个项目列表:
apple orange banana grapes cantaloupe
例如,您可以快速编写一个宏,使其成为一个html列表。从单词apple的开头开始,将以下宏记录为i<li><Esc>A</li><Esc><CR>
到寄存器1中。
&lt; CR&gt;是关键,因为它允许你跳转到下一行,从而在宏执行上使用“count”修饰符,提供多行宏执行
然后转到橙色的开头并使用4 @ 1([count] @ [register letter])将宏应用于其余条目以获得此结果:
<li>apple</li>
<li>orange</li>
<li>banana</li>
<li>grapes</li>
<li>cantaloupe</li>
想象一下,在200个项目的列表中使用它。节省时间没有?
当然这个例子很简单,你可以通过搜索和替换来做到这一点,但你可以想象更复杂的例子......
答案 1 :(得分:3)
我使用宏进行大量临时自定义按键保存。但这是根据具体情况而定的。
例如:
删除4个字符,插入模式,([]),退出插入模式,向下移动,返回四个空格。然后使用.
重复此操作。
答案 2 :(得分:2)
我最近在编辑c ++代码时使用了一个宏。我有大约300个头文件,他们基本上有这样的形式:
... includes and other junk
namespace foo {
namespace bar {
... some classes and other code ...
}
}
... possibly more code
我想添加另外两个命名空间。最终文件应如下所示:
... includes and other junk
namespace top {
namespace foo {
namespace bar {
... some classes and other code ...
}
}
}
... possibly more code
非常繁琐且非常容易出错。但是使用vim宏它非常简单。只需打开所有需要更改的文件然后记录:
然后您可以像要更改的文件一样多次运行宏。
就个人而言,我发现自己一直在使用录制的宏和视觉块编辑命令来加快速度。一开始它们可能有点棘手,将问题视为可以使用vim命令轻松移动的范围内的重复命令。但是一旦你养成了在庄园中看到问题的习惯,他们就有机会一直为你节省时间。
答案 3 :(得分:1)
答案 4 :(得分:0)
我喜欢用ctags和/或cscope标记我的文件,因此我有一个用于重新索引已更改文件的键映射。
例如,您正在项目栏中编辑foo.c并进行了一些更改。按(魔术击键)和vim运行ctags -a -o foo.c
如果你想变得非常喜欢,你可以为每个项目提供一个单独的TAGS文件,并添加一个键映射来重新索引整个项目。
ctags rocks