x**3な人生

基本的にはメモ

複数のtagsファイルをvimで読み込む

他に良いやり方があるような気もするが、とりあえずメモ。

複数のプロジェクトにまたがってtagジャンプしたい時がある。例えば外部のライブラリの挙動を詳しく確認したいときなど。 ここでは便宜上、myprojectとsome_libという2つのプロジェクトが同じディレクトリの配下にあるという前提にする。

まずそれぞれのプロジェクトでtagsファイルを作成する。

$ (cd myproject; ctags -R)
$ (cd some_lib; ctags -R)

両方のプロジェクトに新しくtagsファイルが生成される。

$ tree
.
├── myproject
│   ├── tags
│   ├── src/
│   │   └── main.c
├── some_lib
│   ├── tags
....

次にmyprojectへ移動してvimソースコードを開く。このとき既にmyproject/tagsは読み込まれているが、some_lib/tagsは読み込まれていない。よってsome_libにある関数などにジャンプすることはできない。 そこで以下のようにvim:set tagsを使ってこのtagsファイルを追加する。

:set tags+=../some_lib/tags

すると両方のプロジェクトに渡ってtagジャンプすることができるようになる。

以上