VIM: плагин автозаполнения для работы с gtags

Я только что перешел из ctags в gtags для моего огромного C-проекта. Но я не смог найти плагин vim для автозаполнения, который работает с gtags. gtags так широко используется и намного эффективнее ctags. Я уверен, что я что-то здесь упускаю. Кто-то должен иметь встроенные gtags с любым плагином автозаполнения.

2 ответа

Решение

Я должен написать свой собственный плагин для этого. Вот ссылка, если кому-то это нужно. https://github.com/kanwar-saad/gtagsomnicomplete

Я написал простой 'omnifunc' для Vim, который использует GNU global для завершения:

augroup GlobalComplete
  autocmd!
  autocmd FileType c setlocal omnifunc=GlobalComplete
augroup END

function! GlobalComplete(findstart, base)
  if a:findstart == 1
    return s:LocateCurrentWordStart()
  else
    return split(system('global -c ' . a:base), '\n')
  endif
endfunction

function! s:LocateCurrentWordStart()
  let l:line = getline('.')
  let l:start = col('.') - 1
  while l:start > 0 && l:line[l:start - 1] =~# '\a'
    let l:start -= 1
  endwhile
  return l:start
endfunction

Смотрите также:

Другие вопросы по тегам