Отключить omnicomplete или ftplugin или что-то в vim
Я пытаюсь отключить (auto-/omni-/whichever-) завершение в sql. Это проблема для меня, потому что я использовал <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
Больше должной осмотрительности:
- : help omnifunc
- : help ftplugin
- Это, возможно, одно и то же, но ответа не было: Как отключить Omni Complete в Vim?
- Другие советы SO, которые касаются включения этих функций в
- Изменение имени файла для другого исполнения решит проблему
но это глупо.
Ответы
Ответ 1
Эти сопоставления происходят из $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
.