A. ジャンプコマンドを使おう。
この記事は Vim Advent Calendar 2014 の 23 日目の記事です。
22 日目は petitviolet さんによる Vimでブラウザを操る でした。
Vim にはタグジャンプを始めとする様々なジャンプコマンドがあります。これらを活用することで こころぴょんぴょん コードリーディングをよりスムーズにすることが出来ます。
:help tagsrch.txt
タグジャンプ
ctags
を使って作成したタグファイルの情報を元に、定義元にジャンプすることが出来ます。
キーワードの上で <C-]>
を押すとジャンプしますが、定義元が複数ある場合は最初のものにジャンプします。
ジャンプ先を選択したい場合は g<C-]>
でジャンプ先を一覧表示し、選択することが出来ます。
タグジャンプはウィンドウ系のコマンドと組み合わせて、ウィンドウ分割で開いたり <C-w><C-]>
プレビューウィンドウに表示させたり <C-w>}
することも出来ます。
インクルードファイルの検索
Vim には'path'
オプションで指定された場所のインクルードファイルから定義や
キーワードを検索しジャンプするコマンドがあります。
d
で終わるものはマクロ定義を、i
で終わるものはキーワードを検索します。
[i
[d
定義・キーワードを含む 1 行を表示する。数字を与えると幾つ目のものを表示するか
指定することができる。
[I
[D
定義・キーワードを含む行を全て表示する。
[<C-I>
[<C-D>
定義・キーワードを含む行にジャンプする。数字を与えると幾つ目のものにジャンプするか
指定することができる。
検索先は 'path'
オプションに依存するのでデフォルトだとカレントディレクトリ・カレント
ファイルと同階層のみとなります。ディレクトリ配下を再帰的に検索させたい場合は
set path+=**
と指定しましょう。但し、ファイル数が多い場合は注意して下さい。検索の中断は <C-c>
です。
比較
ctags が使え、タグファイルが生成出来る環境であればタグジャンプが正確で便利です。コマンドも
インクルード検索と比べると手軽です。
タグファイルを勝手に配置できなかったり、ctags が導入できない、インクルードファイルが頻繁に
変更されて毎回タグファイルを生成する訳にはいかない等の事情がある場合に、インクルードファイルの
ジャンプコマンドも覚えておくと役に立つかもしれません。
参考
ちなみにまだごちうさは見ていません。リゼちゃんがかわいいのは把握してる。
以上、23 日目の記事でした。次回 24 日が現在欠番です。25 日の担当は mattn さんです!