/ / make Omnifun Standard in Vim einfügen Abschluss - vim, Autocomplete, Eclim

make omnifun default in vim einfügen completion - vim, autocomplete, eclim

Nach der Installation von eclim und ycm in vim, wenn Sie mit der Eingabe beginnen, wird vim verwenden -- user defined completion Im Popup-Menü können Sie zur Omni-Vervollständigung wechseln, die eingerichtet wurde, um die eclim-Optionen mit c-x c-o anzuzeigen.

Wie mache ich vim Benutzer Omni Vervollständigungsoptionen und nicht benutzerdefinierte Option standardmäßig, ohne jedes Mal c-x c-o drücken zu müssen?

Wenn ich richtig verstehe, sollte die Kette gehen:

completefunc - (Anrufe)> omnifunc - (Anrufe)> eclim Optionen

Stattdessen ruft completefunc standardmäßig die benutzerdefinierte Vervollständigung auf und wechselt zu Omnifunc auf c-x c-o

Antworten:

1 für die Antwort № 1

Dies ist von meinem aktuellen ~ / .vim / vimrc:

" Eclim + YouCompleteMe {{{1
" See <~/MyDocs/SysAdmin/Eclim.otl>
" This next line recommended by Eclim installation instructions

autocmd FileType php,java,ruby let g:EclimCompletionMethod = "omnifunc"

" For your list of filetypes where you want Eclim semantic completion
" as the default YCM completion mode:

autocmd FileType php,java,ruby,c,cpp,perl,python
if &completefunc != "" | let &omnifunc=&completefunc | endif

" This will allow you to hit <Enter> in normal mode to search for the
" word under the cursor

nnoremap <silent> <buffer> <cr> :PhpSearchContext<cr>
" End Eclim + YouCompleteMe }}}1

Ich fand, dass ich & omnifunc = & completefunc haben musste, wenn ich verwenden möchte Eclims semantische Vollendung.

Ich bin mir nicht sicher, ob ich das komplett verstehe, aber es sieht so aus, als ob Eclim Omnifunk erwartet und YCM erwartet completefunc, wo Benutzerabschluss = completefunc und Omni-Vervollständigung = Omnifunc


1 für die Antwort № 2

Abgesehen von der Standardeinstellung <C-n> Vervollständigung (deren Quellen über die "complete" Option), hat Vim zwei kundenspezifische Vervollständigungen, nämlich Benutzer und Omni Fertigstellung. Der einzige Unterschied besteht in den Auslösetasten (<C-x><C-u> gegen <C-x><C-o>) und Optionsnamen für die Funktionsnamen. Um das Omnifunction mit den Benutzerfunktionstasten zu verwenden, weisen Sie einfach den Funktionsnamen neu zu nachdem die Omnifunc gesetzt wurde:

:let &omnifunc = &completefunc