关于vi:vim中代码块和宏的最佳策略是什么?

关于vi:vim中代码块和宏的最佳策略是什么?

What is the best strategy for code chunks and macros in vim?

随着我用vim进行更多的开发,我发现自己想要复制有用的代码块,类似于Eclipse中的"模板"。

我正在考虑为每个代码块创建一个单独的文件,然后将它们读入

1
:r code-fornext

但这似乎有点原始。 到处搜寻,我发现提到了vim宏以及有关"映射"的内容,但似乎没有什么简单明了的。

我正在寻找的例如 类似于Eclipse的"模板",因此我将代码游标弹出,并将光标置于其中。
或JEdit的"宏",我可以记录它在一行上进行复杂的删除和重命名,然后在另外10行上再次播放它,因此对它们也是如此。

vim是否具有类似于这两个功能的功能?


要在Vim中记录宏,请在命令模式下,按q键和要为其分配宏的另一个键。对于快速丢弃的宏,我通常只需按qq并将宏分配给q键。进入录制模式后,请遍历所有按键。完成后,请确保您已返回命令模式并再次按下q以停止录制。然后,要手动重播宏,可以键入@q。要重播以前运行的宏,可以键入@@或运行10次,可以键入10@q20@q等。

综上所述:

1
2
3
4
5
6
7
8
9
+----------------------------------+-------------------------------------+
| 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上,您可以找到一类专门用于摘要和缩写扩展的提示。您还将看到一个插件列表,这些插件可以简化复杂代码段/模板文件的定义。

HTH,


推荐阅读