2009年4月9日木曜日

Vim: 「*」/「#」 カーソル下のフレーズを検索

Vimの好きなところはいくつもある。個人的な見解だがVi系ってキーを打たずに済むポリシーのように感じる。キータイプが遅い自分としてはそこが一番気に入っている。
キーを打たないとは、カーソル下の単語に何かをするのである。
その何かとは、例えば検索だったり、ファイルパスだったり、manだったりする。

今回はその中で「検索」についてのTips(まぁVi系の基本操作の部類に入ると思うけれど)。
検索したいフレーズがあった場合マウスでその単語をコピペして検索してませんか? Vim(gVimを除く)においてマウスを使う行為はVimを冒涜していると言っても過言ではないかもしれません(笑
なぜならVimではマウスなんて使う必要がないのだから!

検索したいフレーズにカーソルを持って行き(もちろんジャンプ系コマンドで素早く。矢印キー連打なんて厳禁ですぞ!)、おもむろに「*」を叩いて見よう。すると次の検索対象にジャンプすると共に他の検索対象がハイライトされるでしょう。次のに移動したけりゃ「n」、前のに移動したけりゃ「N」を押せばよい。

また、「*」が正順方向に検索したのに対し「#」を使うと逆順方向に検索する。n/Nの動作も逆になる。


ちなみにVimの最下行のステータス・ラインに現在検索中のフレーズが表示されるが、お気付きのように「\<\>」に囲まれた正規表現の「単語」になっている。
よって"proc"にヒットしても"process"にはヒットしないので目的の単語が素早く見つけられる。これはループカウンタによく用いられる「i」とか一文字の変数名等を検索するのに便利。

この正規表現が邪魔な場合は頭に「g」を付ける。「g*」とするとステータス行(?)にも上記の正規表現は付かず"proc"で検索しても"process"にもヒットするようになる。「g#」も同様に使える。


このように検索したい時は単語を打つ必要が無く、その単語上にカーソルを持って行き「*」を押して「n」を押していけば良いのである。ん~楽チン。


0 件のコメント:

コメントを投稿