如何在vim中键入{两次}时禁用自动换行?

时间:2012-09-16 04:26:31

标签: vim

你知道,在Django模板中,变量由{{}}包裹,但似乎在Vim(vi和gvim是相同的)中,在你输入{}之后,输入另一个{,它会自动插入一个新行而不是{。有谁知道如何禁用它?

2 个答案:

答案 0 :(得分:0)

如果你想对某些文件类型使用这个autoclose插件,例如只针对.c和.h文件,你可以将它放在.vim/ftplugin/c_autoclose.vim.vim/ftplugin/h_autoclose.vim中,也许可以从一个中心对它进行符号化位置。

对我来说,一个具有如此大影响力的插件无法暂时禁用它,这似乎很奇怪。如果您修改它以添加b:disable_autoclose变量(b:变量可以在不同的缓冲区中具有不同的值)并使其尊重该值,那么肯定会对此脚本进行改进。然后你可以做

autocmd BufNewFile,BufRead *.html let b:disable_autoclose=1

或只是进行键盘映射以切换它,以便您可以为任何嵌入式CSS或JS使用它并为Django禁用它。

答案 1 :(得分:0)

似乎该功能不可配置。您可能必须通过编辑autoclose的源代码来禁用它。只需要改变两行代码。

改变这个:

88         "inoremap <silent> { {<C-R>=<SID>CloseStackPush('}')<CR>
89         inoremap <silent> { <C-R>=<SID>OpenSpecial('{','}')<CR>

88         inoremap <silent> { {<C-R>=<SID>CloseStackPush('}')<CR>
89         "inoremap <silent> { <C-R>=<SID>OpenSpecial('{','}')<CR>

此外,您可以<leader>a临时关闭自动关闭。