5

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

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

:r code-fornext

但这似乎有点原始。谷歌搜索我发现提到了 vim 宏和一些关于“地图”的东西,但没有什么看起来很简单。

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

vim 有这两个功能吗?

4

2 回答 2

8

要在 Vim 中录制宏,请在命令模式下,点击q要分配宏的键和另一个键。为了快速丢弃宏,我通常只是点击qq并将宏分配给q键。进入录制模式后,请运行您的击键。完成后,请确保您回到命令模式并q再次点击以停止录制。然后要手动重播宏,您可以键入@q. 要重播之前运行的宏,您可以键入@@or 运行 10 次,您可以键入10@qor20@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/

希望你觉得这有帮助!

于 2008-09-10T16:03:36.230 回答
0

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

高温下,

于 2008-09-17T13:42:28.240 回答