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