题
随着我使用 vim 进行更多开发,我发现自己想要复制有用的代码块,类似于 Eclipse 中的“模板”。
我正在考虑为每个代码块创建一个单独的文件,然后用
:r code-fornext
但这似乎有点原始。谷歌搜索后,我发现提到了 vim 宏和一些关于“地图”的内容,但没有什么看起来很简单。
我正在寻找的是例如就像 Eclipse 的“模板”一样,所以我弹出一个代码块,光标位于其中。或者 JEdit 的“宏”,我可以记录在一行上执行复杂的删除和重命名,然后我可以在其他 10 行上再次播放它,这样它对它们执行相同的操作。
vim有类似这两个功能吗?
解决方案
要在 Vim 中录制宏,请在命令模式下点击 q
键和您想要为其分配宏的另一个键。为了快速扔掉宏,我通常只需点击 qq
并将宏分配给 q
钥匙。进入录制模式后,请执行击键操作。完成后,请确保返回命令模式并点击 q
再次停止录音。然后要手动重播宏,您可以键入 @q
. 。要重播之前运行的宏,您可以键入 @@
或者运行 10 次你可以输入 10@q
或者 20@q
, , ETC..
总之:
+----------------------------------+-------------------------------------+
| start recording a macro | qX (X = key to assign macro to) |
+----------------------------------+-------------------------------------+
| stop recording a macro | q |
+----------------------------------+-------------------------------------+
| playback macro | @X (X = key macro was assigned to) |
+----------------------------------+-------------------------------------+
| replay previously played macro | @@ |
+----------------------------------+-------------------------------------+
关于代码块,我发现并开始使用一个名为 snipMate 的 Vim 插件,它模仿 TextMate 的片段功能。您可以在这里获取该插件:
http://www.vim.org/scripts/script.php?script_id=2540
还有一篇关于使用 snipMate 的简短文章(以及显示其使用情况的简短截屏视频):
http://www.catonmat.net/blog/vim-plugins-snipmate-vim/
希望您觉得这有帮助!
其他提示
在 vim.wikia 上,您会发现 提示类别 致力于片段和缩写扩展。您还将看到一个插件列表,可以简化复杂片段/模板文件的定义。
哈特哈,