Vim - 関数や変数の定義元にジャンプする ctags

これはプラグインとかじゃないけど、関数や変数をまとめたタグファイルをつくって、Vimがそれを参照して定義元にジャンプできるようになる ctags っていうモジュール?がある。その使い方。

MacOSX ではすでに入っているんだけど、自分の環境ではデフォルトの ctags はうまく動かなかった。ctags にも色々種類があるようだ。なので、自分は Macports からインストールした ctags を使うことにした。

インストール

Macpors のインストールは割愛。とりあえず最新にしておく。

$sudo port self update	# Macports のアップデート
$sudo port upgrade outdated	# 古くなったインストールされたモジュール達をアップデート

それから ctags のインストール

$sudo port install ctags

デフォルトだと、/usr/bin/ctags が使われてしまうので、とりあえずコマンド名を変更しておく

$cd /usr/bin
$sudo mv ctag{s, s.bak}

それから、Macports でインストールしたディレクトリにパスを通しておく

$vi ~/.bashrc #もしくは ~/.bash_profile

下記を追記

export PATH=/opt/local/bin:$PATH

ついでに ctags のコマンド入力に楽するためにエイリアスをはっておく。

alias ctags='ctags -R -a -f tags'

そしてターミナルを再起動。もしくは source ~/.bashrc

使い方

まずプロジェクトの一番浅い階層で ctags コマンドを入力

$cd works/someproject
$ctags

そうすると、カレントディレクトリに"tags"っていうファイルができるので、カレントディレクトリを移動せずにファイルを開いていく。↓こんな感じ。

vi unko.as jp/co/hoge/foo.as

tags ファイルはカレントディレクトリにあるものを読み込みにいくらしいので、別階層に移動しちゃダメ。
それから、定義元を知りたい関数にカーソルを当てたまま、ノーマルモードで Ctrl-] を入力すると、バッファで定義元ファイルが開く。Ctrl-t でもとに戻る。
バッファ管理系のプラグインと一緒に使うとかなり快適。IDEライクな使い勝手に近づいてくる。


こことか参考にしました