使 vim 自动关闭代码块的语法结构。

有没有插件可以基于缩进和语法文件自动关闭任何语言的语法结构,包裹代码块?

例如,我正在编辑 Lua 文件,当我写入

function myfunction()

并按下回车键,它自动添加一个闭合的“end”

function myfunction()
    <光标位置>
end

或者,有没有人可以展示一个如何为具有长关键字的代码块的特定语言(如 Lua、Erlang 或 Pascal)编写自己的插件的例子?

原文链接 https://stackoverflow.com/questions/8804718

点赞
stackoverflow用户233160
stackoverflow用户233160

Endwise 看起来就是你要找的。它已经支持 Lua,并且如果你对 VimL 很熟悉的话,它似乎很容易扩展。

2012-01-10 14:54:25
stackoverflow用户185171
stackoverflow用户185171

我会使用像 UltiSnips(我最喜欢的)或者 Snipmate 这样的代码片段插件。它们会将一些小的单词或者文本片段扩展成较大的代码块,使你只需要编辑每个结构中唯一的一部分。 UltiSnips 和 Snippmate 都包含多种语言的代码片段,并且允许你创建自己的代码片段。

例如,UltiSnips 包含 Lua 的函数片段。我只需要输入 fun,然后按下 tab 键,它就会被扩展为:

function new_function(args)

end

并且 new_fuctnion 会被选择,以便我可以编辑函数名。然后,当我按下 Ctrl-j (在我的 vimrc 中,我将其绑定到 Tab) 时,它会选择下一部分片段,这里是 args,这样我可以输入函数的参数。最后,按下 Ctrl-j 后,光标会进入函数体中。

2012-01-10 15:18:36