2014-07-24 7 views
11

Próbuję wyłączyć (auto-/omni-/dowolne-) zakończenie w sql. Jest to dla mnie problem, ponieważ użyłem <C-c> do ucieczki, a kiedy plik kończy się na .sql, wydaje się zainicjować wyszukiwanie z frustrującą 2-sekundową przerwą. W szczególności wpisanie k podczas pauzy powoduje kolizję, która wstawia niechciane słowa kluczowe sql.Wyłącz omnicomplete lub ftplugin lub coś w vim

.vimrc ma

filetype plugin off 
    set omnifunc= 

i :filetype powraca filetype detection:ON plugin:OFF indent:ON

ale w trybie wstawiania <C-c>k nadal drukuje

-- Omni completion (^O^N^P) 
    match 1 of 80` while autocompleting 

i :verbose imap <C-c>k powraca

i <C-C>k  *@<C-\><C-O>:call sqlcomplete#Map("sqlKeyword\\w*")<CR><C-X><C-O> 
     Last set from ~/projects.vim 

i verbose set omnifunc można zastąpić, nawet kiedy :set omnifunc= (kiedy ustawić go do niczego) bezpośrednio:

omnifunc=sqlcomplete#Complete 
     Last set from /opt/local/share/vim/vim74/autoload/sqlcomplete.vim 

Więcej należytej staranności:

  1. : pomoc omnifunc
  2. : pomoc ftplugin
  3. To może być to samo, ale nie udzielono odpowiedzi: How do I turn off Omni Complete in Vim?
  4. Inna porada dotycząca SO, która polega na przekształceniu tych funkcji na
  5. Zmiana nazwy pliku na inną, wystarczającą, rozwiązuje problem , ale to jest głupie.

Odpowiedz

8

Te odwzorowania pochodzą z $VIMRUNTIME/ftplugin/sql.vim. Znajdziesz to udokumentowane pod :help ft-sql. Sposób dostosowywania/wyłączania odwzorowań opisano w sekcji :help sql-completion-customization (i kolejnych akapitach). Podsumowanie:

Jeśli nie chcą żadnego z tych odwzorowań:

let g:omni_sql_no_default_maps = 1 

po prostu przedefiniować przykry kluczowe:

let g:ftplugin_sql_omni_key = '<Leader>sql' 

Można również całkowicie wyłączyć ten klucz wybierając jedną nieistniejącego :

let g:ftplugin_sql_omni_key = '<Plug>DisableSqlOmni' 

Umieść dowolne z nich w swoim ~/.vimrc.

+0

Cudowny. Jedna dodatkowa uwaga: to faktycznie nie naprawiło mojego problemu, ponieważ ustawienia w mojej sesji (używam dużo mksession) nadpisały ustawienia w .vimrc. Musiałem przejść przez plik sesji i usunąć wszystkie odniesienia do omniunc, zanim ta rada zadziała, ale tak się stało. enfascination

+1

Cieszę się, że mogę pomóc! Polecam ': set sessionoptions- = options', które zatrzyma zapisywanie odwzorowań i opcji w twoich sesjach, więc nie będziesz miał tych problemów w przyszłości (a przechowywana sesja stanie się znacznie mniejsza). Domyślną opcją jest zły IMO. –

+0

Dzięki za rtfm na tym, używam również , aby wyjść z trybu wstawiania, więc wyłączenie tych powiązań sprawia, że ​​edycja plików sql jest dla mnie o wiele przyjemniejsza. – OregonTrail