Ctags + Bundler + Vim = Exuberância

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 ctagstenho 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~/bintagundle

#!/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 tagundlevez 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 …