是否有任何适用于Vim 7.4的WORKING插件会自动关闭括号('{}','[]','()')并且可能会插入一些回车(至少为'{}')?
我知道这个问题已被问过很多次了,但是没有一个答案在vim 7.4中似乎没有用,或者插件没有更新或者什么的。
到目前为止,我已经尝试了vim-smartinput,autoclose和delimitmate,并且这些已经设法插入任何结束字符,即使我已启用插件,否则它们似乎是活动的。我不知道vim是否有某些变化会以某种方式破坏这些插件。这些插件似乎都没有至少在一年内更新。任何适用于vim 7.4的工作解决方案?
答案 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中的ClosePairs,AutoClose,DelimitMate和AutoClose。
毫不奇怪,所有这些都有效。
你的问题应该改写,因为你没有搜索“在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
中。它们从同一条线开始,但是如果你点击它就会正确定位它们。