unoh.github.com

vi + ctags : 関数等の定義位置にジャンプ

Wed Aug 16 01:07:52 -0700 2006

こんにちは,ttsuruoka です.


vi で PHP のコードを見ているときに,

myhogefunc($foo, CONST_BAR);


のような処理があって,myhogefunc() や定数 CONST_BAR がどんな定義になっているか知りたいときには,ctags が使えます.

vi と ctags を連携させると,myhogefunc() の上や CONST_BAR の上にカーソルを置いて CTRL + ] を押すだけで,それが定義されている場所までジャンプすることができます.

* ctags のダウンロードとインストール
- http://pcmania.jp/~moraz/tools/ctags.html

ctags をインストールしたら,
タグファイル(tags)を作成します.
タグファイルは,関数等の定義位置が記録されるファイルです.

カレントディレクトリ以下の PHP (*.php) のクラス,関数,定数から,タグファイルを作成:

 $ ctags -R --langmap=PHP:.php --php-types=c+f+d ./


あとは,普通に PHP のファイルを開き,調べたい対象の上にカーソルを置いて, CTRL + ] で OK です.


また,タグファイルを元にした入力補完も使えます(INSERT モードで CTRL + x, CTRL + ])が,
前後の変換候補が見にくい(見えない)のであまり使い勝手はよくありません.

それから変数の定義位置もタグファイルに含めることができるようなのですが,
これは vi の単語検索(検索対象上でアスタリスク)で十分対応できるため上では使っていません.


(環境:VIM6.3)