プログラムを書いてて、クラスやメソッドにジャンプするため、vim + ctagsでやってます
手動で
$ ctags -R
とかして、ctagsを生成してましたが、Git操作時にctagsを生成するようにしてみました
Gitのフックを使って、ctagsを生成してみました
tpope/vim-fugitiveを使っているので、
.git/tags
を勝手に参照してくれる環境です
Git hook用のtemplateファイルを用意します
ディレクトリを作って
$ mkdir -p ~/.git_template/hook
Gitに設定しておきます
$ git config –global init.templatedir ‘~/.git_template’
これで、git init 時に.git/.git_templateがコピーされます
hook用のスクリプトを用意
$ ~/.git_template/hook/ctags
#!/bin/sh
set -e
PATH="/usr/local/bin:$PATH"
dir="`git rev-parse --git-dir`"
git ls-files | ctags -R -f "$dir/tags"
後はhook用のファイルをそれぞれ用意
$ vim ~/.git_template/hook/post-checkout
#!/bin/sh
.git/hooks/ctags >/dev/null 2>&1 &
中身が同じものを、
- ~/.git_template/hook/post-commit
- ~/.git_template/hook/post-merge
も用意します
これで、commit時とかcheckout時とかにctagsファイルのスクリプトが呼び出され、ctagsコマンドが実行されます
つまりは、.git/tagsファイルが生成されます
できてるかどうかは
.git/tags
をエディタで開いてみると確認できます
参考
tbaggery – Effortless Ctags with Git
ctags – gitのhookでtags作成 – Qiita