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

时间:2008-09-10 15:27:50

标签: vim vi

随着我使用vim开发更多内容,我发现自己想要复制有用代码块,类似于Eclipse中的“模板”。

我正在考虑为每个代码块创建一个单独的文件,然后用

读取它们
:r code-fornext

但这似乎有些原始。谷歌搜索我发现提到的vim宏和关于“地图”的东西,但似乎没有什么是直截了当的。

我正在寻找的是例如像Eclipse的“模板”之类的东西,所以我弹出一个代码块,光标位于它的中间。 或者JEdit的“宏”,我可以记录在一行上进行复杂的删除和重命名,然后我可以在其他10行上再次播放它,所以它对它们做同样的事情。

vim有这两种功能吗?

2 个答案:

答案 0 :(得分:8)

要在Vim中录制宏,请在命令模式下,点击q键以及要为其指定宏的其他键。对于快速丢弃的宏,我通常只需点击qq并将宏指定给q密钥。进入录制模式后,请按键操作。完成后,请确保您已返回命令模式并再次点击q以停止录制。然后,要手动重播宏,可以键入@q。要重播以前运行的宏,您可以键入@@或运行10次,您可以键入10@q20@q等。

总结:

+----------------------------------+-------------------------------------+
| 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/

希望您觉得这很有帮助!

答案 1 :(得分:0)

在vim.wikia上,您会找到专门用于片段和缩写扩展的category of tips。您还将看到一个插件列表,可以简化复杂片段/模板文件的定义。

HTH,