我试图在sql中禁用(自动/全方位/无论哪个)完成.这对我来说是个问题,因为我使用了< C-c>为了逃脱,当文件以.sql结尾时,似乎启动了一个令人沮丧的2秒暂停的搜索.特别是在暂停期间输入k会导致一个插入不需要的sql关键字的冲突.
.vimrc有
filetype plugin off set omnifunc=
和:filetype返回文件类型检测:ON插件:OFF indent:ON
但是在插入模式< C-c> k中仍然打印
-- Omni completion (^O^N^P) match 1 of 80` while autocompleting
和:verbose imap< C-c> k返回
i <C-C>k *@<C-\><C-O>:call sqlcomplete#Map("sqlKeyword\\w*")<CR><C-X><C-O> Last set from ~/projects.vim
而且详细设置omnifunc可以被覆盖,即使当我:设置omnifunc =(当我将它设置为无)直接:
omnifunc=sqlcomplete#Complete Last set from /opt/local/share/vim/vim74/autoload/sqlcomplete.vim
更多尽职调查:
>:help omnifunc
>:帮助ftplugin
>这可能是一样的,但没有回答:How do I turn off Omni Complete in Vim?
>其他SO建议,这是关于转动这些功能的
>更改文件名以具有不同的功能可以解决问题
但这是愚蠢的.
这些映射来自$VIMRUNTIME / ftplugin / sql.vim.你会发现它记录在:help ft-sql.如何自定义/关闭映射描述如下:help sql-completion-customization(和以下段落).概要:
如果您不想要任何这些映射:
let g:omni_sql_no_default_maps = 1
要重新定义烦人的键:
let g:ftplugin_sql_omni_key = '<Leader>sql'
您还可以通过选择不存在的键完全禁用该键:
let g:ftplugin_sql_omni_key = '<Plug>DisablesqlOmni'
把任何一个到你的〜/ .vimrc.