在Vim中代码块和宏的最佳策略是什么?
时间:2020-03-05 18:50:49 来源:igfitidea点击:
随着我用vim进行更多的开发,我发现自己想要复制有用的代码块,类似于Eclipse中的"模板"。
我正在考虑为每个代码块制作一个单独的文件,然后将它们读入
:r code-fornext
但这似乎有点原始。到处搜寻,我发现提到了vim宏以及有关"映射"的内容,但似乎没有什么简单明了的。
我正在寻找的例如类似于Eclipse的"模板",因此我将光标放在其中的位置弹出了一个代码块。
或者JEdit的"宏",我可以记录它在一行上进行复杂的删除和重命名,然后在另外10行上再次播放它,因此对它们也是如此。
vim是否具有类似于这两个功能的功能?
解决方案
回答
要在Vim中记录宏,请在命令模式下,按" q"键和要为其分配宏的另一个键。为了快速丢弃宏,我通常只需按一下qq并将宏分配给q键即可。进入录制模式后,请遍历所有按键。完成后,请确保我们已返回命令模式,然后再次按q'以停止记录。然后,要手动重播宏,我们可以输入
@ q。要重播先前运行的宏,我们可以键入
@@或者运行10次,我们可以键入
10 @ q或者
20 @ 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/
希望对我们有所帮助!
回答
在vim.wikia上,我们可以找到一类有关摘要和缩写扩展的提示。我们还将看到一个插件列表,这些插件可以简化复杂代码段/模板文件的定义。
HTH,