vim-users.jp

Hack #65: 選択範囲を検索する

Posted at 2009/08/31
このエントリーをはてなブックマークに追加

バッファ全体ではなく、範囲を制限して部分的に検索を行いたいことがあります。Vim にはそれを行うための正規表現の構文があります。

\%V

\%V は、選択した範囲にマッチする正規表現です。 つまり、検索パターン中に \%V を含めると、直前に選択した範囲にのみ検索がマッチするようになります。 Vim はウィンドウ毎に直前に選択された範囲を覚えているので、 Normal mode で使用した場合は直前の範囲が使用されます。

よって、選択範囲を検索するには

  • Visual mode に入って検索したい範囲を選択する。
  • Visual mode を抜け、/ で検索プロンプトを出す。
  • \%V を入力してから検索したい文字列を入力する。

とします。

検索のハイライトも選択範囲のみがハイライトされるので、目的の箇所が探しやすくなります。 また、新しく Visual mode で範囲を選択するとマッチする箇所も変更されます。

設定例

頻繁に使うようなら Key mapping を設定しておくと良いでしょう。

vnoremap z/ <ESC>/\%V
vnoremap z? <ESC>?\%V

Visual mode 中に検索による移動ができなくてもよいのなら、/ や ? を直接上書きするようにマッピングしても構いません。

thinca

もどる
blog comments powered by Disqus