vim-users.jp

Hack #180: ヤンクしている文字列で検索する

Posted at 2010/11/02
このエントリーをはてなブックマークに追加

問題

バッファ内を/で検索することができます。Vim正規表現が使えます。また、カーソル下の単語を*で検索することができます。たとえばカーソル下の単語がujihisaの場合、*/\<ujihisa\>とコマンドを入力して<Cr>するのと同等です。ただし\<\>はそれぞれ単語のはじまりと単語のおわりを表現するVim正規表現です。

ところで単語よりももっと細かい単位で、しかし長い文字列を検索するにはどうすればよいでしょうか。たとえばカーソル下にあるIsThisAPen::NoItIsNancy(that, is, cool)という文字列で検索したいときです。対象が長い文字列なので、人間にはとても手入力することができません。

とりあえずその文字列をなんらかの方法でヤンクしたとしましょう。そのあと、どのようにして検索を開始すればよろしいのでしょうか。

解決

二通りの解決方法があります。

/のあと、<C-r>"と打鍵します。これで、ヤンクしている文字列が/のあとに貼付けられます。

もう一つの解決方法は、/ではなくq/を用いて検索を開始することです。q/q:同様にCommand Lineウインドウを開き、そこから検索を開始します。q/の直後はノーマルモードになっており、pなどでそのままヤンクしている文字列を貼付けることができます。

あとは<Cr>で検索を行いましょう。長い文字列を検索できたとき、全米が感動の渦に巻き込まれ、ソースコードの読解やリファクタリングなどに多いに役立つことでしょう。

参考

  • :help c_CTRL-r
  • :help q/
ujihisa

もどる
blog comments powered by Disqus