Vim的自动关闭支架

时间:2014-01-23 18:42:35

标签: vim vim-plugin brackets

是否有任何适用于Vim 7.4的WORKING插件会自动关闭括号('{}','[]','()')并且可能会插入一些回车(至少为'{}')?

我知道这个问题已被问过很多次了,但是没有一个答案在vim 7.4中似乎没有用,或者插件没有更新或者什么的。

到目前为止,我已经尝试了vim-smartinput,autoclose和delimitmate,并且这些已经设法插入任何结束字符,即使我已启用插件,否则它们似乎是活动的。我不知道vim是否有某些变化会以某种方式破坏这些插件。这些插件似乎都没有至少在一年内更新。任何适用于vim 7.4的工作解决方案?

6 个答案:

答案 0 :(得分:86)

对于我们这些想要香草的人vim

inoremap " ""<left>
inoremap ' ''<left>
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>O

insert模式下的自动完成功能未设置set paste。将其保留在vimrc中,以避免每次都输入 当我们不想要映射时,我们需要在输入( {之类的映射字符之前使用 ctrl + v 来转义它。

答案 1 :(得分:33)

我刚刚在Ubuntu上使用病原体测试了Vim 7.4.131中的ClosePairsAutoCloseDelimitMateAutoClose

毫不奇怪,所有这些都有效。

你的问题应该改写,因为你没有搜索“在7.4中工作的自动关闭插件”......因为所有这些都有。您应该问的是“这是我的设置,为什么没有”自动关闭“插件对我有用?”。

一个问题可以回答:“这是一团糟。从第95行开始评论所有内容。”

此外,Vim是一个非常稳定的环境:“没有积极地工作”并不意味着“不值得尝试”。恰恰相反,实际上。

答案 2 :(得分:25)

在愤怒的mod之前投票 delimitMate 关闭基于意见的问题。

答案 3 :(得分:13)

添加新候选人:有一个名为lexima的插件。它于2014年10月推出,因此它相当新颖。据作者称,它具有高可定制性和点重复性。它也可以自定义为自动关闭{* 1}} - def对,如红宝石。

以下是作者在日本举行的the presentation中的VimConf,其中比较了实现自动关闭功能的不同方法。

答案 4 :(得分:3)

我正在回答我自己的问题,因为我弄清楚为什么没有一个插件似乎适合我。似乎问题与vim中的mksession功能有关,我只是在保存的会话中尝试这些插件,并且出于某种原因,这似乎阻止了插件因某些未知原因而工作。插件似乎已安装并且“正常工作”(如插件中的命令所示等)。没有打开保存的会话,至少delimitMate开始为我工作。

答案 5 :(得分:2)

xptemplate是一个代码段插件,其中包含一个用于自动填充括号/大括号/等的选项。安装并设置

let g:xptemplate_brace_complete = '([{'

.vimrc中。它们从同一条线开始,但是如果你点击它就会正确定位它们。

相关问题