2009年6月1日月曜日

Vim: ctags

vimでお馴染みなのctags。無いとコードが読めないくい必須のアイテム。しかし、デフォルトでは少々使い辛い部分があるのでカスタマイズ。

タグファイルの配置場所

デフォルトではカレントの「tags」か「TAGS」になっている。
:set tags?
  tags=./tags,./TAGS,tags,TAGS

これでは、階層を持ったソースコード群のトップ・ディレクトリで「ctags -R」と作成した場合、一つ下に潜った状態でviを起動したら当然タグファイルを見つけられなくなる。

かと言って、tags+=../tags,../../tags,… とかするのは現実的ではない。
そこで、~/.vimrcに以下を記述すると親ディレクトリを再帰的に/(ルート)まで探してくれるようになる。
:set tags=tags;
※正確にはタグファイルが見つかってもそのタグファイルに定義が存在しない場合は次(親ディレクトリ)のタグファイルを探しに行く

タグファイル名

上記でだいぶ使い易くなったが、もう一つ不満が。
それはgrepやgrep.vimでワイルドカード(*)指定したときにtagsファイルも検索対象になってしまい、タグ化しているので当然ヒットしてしまい判断の邪魔になる。

そこでタグファイル名をドットファイルにする。
「:set tags=」はタグファイルの場所を指定する以前にタグファイル名を指定するものなので以下のようにする。
:set tags=.tags;

すると今度は、ctagsコマンドがデフォルトで生成するタグファイル名は"tags"なので、毎度
$ ctags -f .tags
とするのは面倒になるから、~/.bashrcに以下のaliasを追加してしまう。
alias ctags='ctags -f .tags'


[今日の一言]

右のリリース・カウンタの値が増えたので、Fedora11のリリースがまた一週間伸びたようです。まぁ気長に待ちましょう。



0 件のコメント:

コメントを投稿