Vim に限らないが、エディタのお供に ctags がないと不便極まりない。
ソースを管理しているディレクトリが以下のようになっていたとする。
/
/subsystem1
/include
/src
/subsystem2
/include
/src
ルートディレクトリで
ctags -R
とすれば、管理している全ソースの tags がルートにできるのだが、Vim は tags ファイルをカレントディレクトリしか探さない。カレントディレクトリに tags を作っても、/subsystem1/src で作業していて、/subsystem2/src の関数にジャンプしたい場合はそれができない。
できれば、カレントディレクトリの親を再帰的に検索して tags を見つけて欲しい。というわけで、不細工だが vimrc に以下の設定を書いておけば、望みの効果を得られる。
:set tags=./tags,../tags,../../tags,../../../tags,../../../../tags,../../../../../tags
階層が深くなりそうだったら更に繰り返して書けばよいが、もっと上手い書き方はないものか…。