随着我使用 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 上,您会发现 提示类别 致力于片段和缩写扩展。您还将看到一个插件列表,可以简化复杂片段/模板文件的定义。

哈特哈,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top