我正在尝试在 sql 中禁用 (auto-/omni-/whichever-) 完成。这对我来说是个问题,因为我使用了 <C-c>
对于转义,当文件以 .sql 结尾时,它似乎以令人沮丧的 2 秒暂停启动了一些搜索。特别是,键入 k
在暂停期间导致插入不需要的 sql 关键字的冲突。
.vimrc 有
filetype plugin off
set omnifunc=
和
:filetype
返回 filetype detection:ON plugin: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
和
verbose set omnifunc
可以被覆盖,即使我 :set omnifunc=
(当我将其设置为空时)直接: omnifunc=sqlcomplete#Complete
Last set from /opt/local/share/vim/vim74/autoload/sqlcomplete.vim
更多尽职调查:
但那是愚蠢的。
最佳答案
这些映射来自 $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
.
关于vim - 在 vim 中禁用 omnicomplete 或 ftplugin 或其他东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24931088/