Help us understand the problem. What is going on with this article?

Vim でもこころぴょんぴょんしたい!

More than 5 years have passed since last update.

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 が導入できない、インクルードファイルが頻繁に
変更されて毎回タグファイルを生成する訳にはいかない等の事情がある場合に、インクルードファイルの
ジャンプコマンドも覚えておくと役に立つかもしれません。

参考

https://gist.github.com/ujihisa/8292163


ちなみにまだごちうさは見ていません。リゼちゃんがかわいいのは把握してる。

以上、23 日目の記事でした。次回 24 日が現在欠番です。25 日の担当は mattn さんです!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away