【问题标题】:What is the best strategy for code chunks and macros in vim?vim 中代码块和宏的最佳策略是什么?
【发布时间】:2008-09-10 15:27:50
【问题描述】:

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

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

:r code-fornext

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

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

vim 有这两个功能吗?

【问题讨论】:

    标签: vim vi


    【解决方案1】:

    要在 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 的 sn-ps 功能。您可以在此处获取插件:

    http://www.vim.org/scripts/script.php?script_id=2540

    还有一篇关于使用 snipMate 的短文(以及一个简短的截屏视频):

    http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

    希望这对您有所帮助!

    【讨论】:

    • @@ 似乎只适用于版本 7,但我可以在版本 6 中使用 @q 调用它,非常有用,谢谢!
    【解决方案2】:

    在 vim.wikia 上,你会发现一个 category of tips 专门用于 sn-ps 和缩写扩展。您还将看到简化复杂 sn-ps/模板文件定义的插件列表。

    HTH,

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 2016-11-27
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      相关资源
      最近更新 更多