Ответ 1
ctags
для автозаполнения - беспорядок. Я предлагаю вам попробовать плагин на основе компилятора, например clang-complete или gcc-sense (не пробовал этот). Преимущества:
- больше точности, так как то, что они делают, в значительной степени компилируется
- ошибки компиляции помечены "на лету" над исходным кодом.
Вы должны перестроить ctags, чтобы поддерживать его в актуальном состоянии
вам не нужно иметь дело с ctags (они все же полезны, чтобы прыгать, хотя)
Вы не можете ввести C-X C-O после (, вы просто получите "шаблон не найден"
что вы ожидаете?
Вы не можете вводить C-X C-O в нормальном режиме, курсор будет просто прыгать
вы всегда можете переназначить эту последовательность, если считаете ее частой ошибкой (что-то вроде nnoremap <C-x><C-o> a<C-x><C-o>
)
Вы получаете раздражающее окно предварительного просмотра в верхней части
Вы можете отключить это, удалив preview
из completeopt
. см. :help completeopt
Я использую следующую настройку:
- clang-complete для завершения
- supertab для заполнения клавишей
tab
- ultisnips для подписчиков подписи функций. (также работает с snipmate)
и некоторые настройки vimrc:
set pumheight=10 " so the complete menu doesn't get too big
set completeopt=menu,longest " menu, menuone, longest and preview
let g:SuperTabDefaultCompletionType='context'
let g:clang_complete_auto=0 " I can start the autocompletion myself, thanks..
let g:clang_snippets=1 " use a snippet engine for placeholders
let g:clang_snippets_engine='ultisnips'
let g:clang_auto_select=2 " automatically select and insert the first match
Наслаждайтесь!