GNU global e vim

7

Alguém já usou o GNU global com o vim? Estou navegando por uma grande base de código C ++ e tenho alguns problemas para descobrir como usá-lo. Eu quero usar a funcionalidade gtags-cscope, mas não consigo descobrir como gerar um banco de dados de referência cruzada que mais tarde eu possa conectar ao vim.

Qualquer ajuda para encontrar a solução é apreciada.

queimadura
fonte
11
O GNU Global não suportava JavaScript quando tentei, mas funcionou bem com PHP e IIRC; a integração com o Vim era bastante direta. Você poderia detalhar o que tentou e como falhou?
romainl
@romainl Estou acostumado a cscope regular. O que foi confuso para mim é qual arquivo usar como referência cruzada para um banco de dados. Existem vários arquivos, mas parece que obtenho o mesmo resultado, não importa o que eu uso para um banco de dados. A ferramenta nem sempre produz o resultado certo. Você já teve algum problema com isso? Esta é a base de código que estou tentando navegar
flashburn
Eu uso o cscope global GNU para meus projetos PHP. Eu uso as instruções encontradas aqui . Resumido: :set csprg=gtags-cscope, :cs add GTAGS. Você pelo menos executou esses comandos?
Peter Rincker
@PeterRincker Sim, eu tenho. Nem sempre encontro a "coisa" certa para mim.
flashburn

Respostas:

2

A distribuição da GNU Global já possui alguns scripts vim que são bastante úteis.

Procure por 'gtags.vim' e 'gtags-cscope.vim' (o mais adequado provavelmente para o que você deseja) no diretório de instalação da Global e copie o que você preferir no diretório 'plugins' dentro da configuração do vim. O segundo script fará uma

    set csprg=gtags-cscope

para você, que encaminhará todos os comandos cscope normais através do provedor gtags e usará o banco de dados do GNU Global ao pesquisar.

Eu prefiro simplesmente usar o comando: Gtags diretamente, o que acho mais fácil de usar, mas cada um na sua.

O plugin gen_tags também pode ajudar a reconstruir facilmente o seu código-fonte DB diretamente do vim.

n00bmind
fonte
1

No diretório de código-fonte, use o seguinte comando:

find . -name '*.cpp' -o -name '*.h' > gtags.files
gtags --accept-dotfiles -c -f gtags.files

Isso criará a referência cruzada.

No vim, você pode emitir o seguinte comando para chamar gtags-cscope

:GtagsCscope
user4688
fonte