2012-02-19 10 views
11

ビジュアルモードで正規表現マッチを自動的に選択する方法がわかりません。Vim - 正規表現の一致を視覚的に選択するコマンド?

例えば、手動で、私は言葉

/word 

それは試合「単語」の最初の文字にカーソルを土地を検索することができます。
次に、vを押してビジュアルモードに入り、llllを押して「単語」全体を選択します。

今、私はこれをマクロで行いたいと思いますが、前もって試合の長さがわかりません。

私は、Vimが現在のマッチの始めと終わりに組み込みのマークを自動的に定義することを期待していました。しかし、私はそれに関する情報を見つけることができませんでした。

私が欲しいのは、Ctrl+nをマクロに再割り当てして、次のマッチに移動してビジュアルモードで選択することです。つまり、マッチを強調表示するだけではありません。

をあなたはその私が(Ctrl+nzfなど)正規表現の一致に基づいて折り目を作成したいが、私はそれが来ると確信しているので、なぜ迷っている場合(nは、次の試合に移動しますか。パラレル)他のケースでも便利です。

答えて

6
:noremap <C-n> //s<CR>v//e+1<CR> 

要約を編集://私は、しかし、// e + 1が私のために働いた(マッチの最後の文字も選択した)。

+0

これはまさに私が必要だったものです(試行錯誤は '// e + 1'が最後の文字の後の境界に私を連れて行ったことを示していますが)試合の、編集された)。ニート!自分で見つけられなかった後、私は自分が望むことをするのは難しいと思っていました。 –

+1

そうだね。 '' selection''オプションが 'inclusive'に設定されている場合、'/e'は上で動作します。 'exclusive'に設定されている場合、' // e + 1'が動作します。私は ':behave mswin'を使い' 'selection''を' exclusive 'に設定します。 –

7

//最後の検索の最後の文字に移動します。 詳細 - :help {オフセット}。

古い検索バッファhereを復元する方法を見つけることができます。

+0

これはすばらしいことでした。私にとっては、ありがとうございました。 –

4

将来、この質問に遭遇する人々のために、vimはこの機能を内蔵しています:gn(およびその近い兄弟)は次の(それぞれ、前の)マッチにジャンプして視覚的に選択します。モーションとして使用することもできます。例えばcgnは次のマッチにジャンプして変更します。

関連する問題