Eu pretendia fazer isso por um tempo depois de ler este artigo, mas hoje eu me arrisquei e fiz minha configuração funcionar bem com Ctags.
Instalação
Super fácil no mac com brew install ctags
tenho certeza que o apt pode fazer o mesmo com facilidade no Linux.
iniciar
Verifique se ctags -R .
funciona na pasta do seu projeto, depois abra o vim e <C-]>
siga uma referência marcada como um método ou nome de classe.
autotag.vim
Eu queria atualizar as tags em meu projeto quando um arquivo fosse escrito, autotag.vim faz o truque, apenas coloquei no meu diretório pathogen.
curl -O https://raw.github.com/craigemery/dotFiles/master/vim/plugin/autotag.vim
Etiquetagem de código de biblioteca.
Eu queria que as tags fossem geradas para todas as joias no Gemfile ao executar o bundler. Seria ótimo se o bundler tivesse algum tipo de gancho de pós-instalação como foi proposto . Nesse ínterim, estou muito feliz com isso que vive em meu nome, mas qualquer coisa serve~/bin
tagundle
#!/usr/bin/env ruby
system("bundle check || bundle")
require 'rubygems'
require 'bundler'
paths = Bundler.load.specs.map(&:full_gem_path)
system("ctags -R -f gems.tags #{paths.join(' ')}")
não se esqueça do chmod +x
Acabei de executar em tagundle
vez de agrupar para verificar e instalar o Gemfile e, em seguida, atualizar as tags para todo o código da biblioteca em uso.
Em seguida, para ligar este add-se aset tags+=gems.tags
~/.vimrc
Também posso, em algum momento, gerar tags para o código-fonte do Ruby …
Eu também adicionei ao meugems.tags
.gititgnore-global
Conclusão
Estou usando Ctags há algumas horas, e eles parecem valer a pena os 15 minutos que levaram para configurar tudo …