2017-06-10 18 views
6

よく私が検索を行うと、viに置き換えていたとき、私はこのようにそれを行います。viでfind replace replaceを実行すると、前のページに戻る方法?

:%s/find/replace/gc 

これはあなたにnを押してスキップ、またはyを押して、交換するオプションを提供します。しかし、ときどき私は大きなファイルの中で、nを押して、誤って1つをスキップして、yを押すことを意味します。

前のページに戻ってもう一度変更を加えるにはどうすればよいですか?

本質的に、私はどのようにしてfindsearch)他の方向に一時的にですか?ありがとう。

+0

は 'vim'でも起こります – Sother

+0

' Shift + N'は機能しません: – Sother

+1

代替確認モードでは '(y、n、q、l、a、^ E、^ Y)'キー作業。 –

答えて

2

これは質問に対する回答ではありませんが、非常に良い代替案です。私は最近、CtrlSFプラグインを発見し、検索/置換処理を大幅に改善しました。

基本的には、検索結果がバッファーに入っているため、この単一のバッファー内のすべての置換を行うことができます。あなたのシナリオでは

、最初:CtrlSF findを行い、すべてのファイルのすべての試合でのバッファを取得し、その後、あなたは/findを行うと、あなたのターゲット上nで移動し、それらを変更する(もちろん、あなたが実際には最初のものを変更することができます.で置き換えてください)。

ターゲットが見つからない場合は、Nを押して前の結果に戻り、置き換えます。

2

現在の検索置換操作を中断してもう一度再開したいかどうかわかりません。それが許容可能である場合でも、ここに私の提案です:<ctrl-C>を押すことで、検索を中断し、あなたが誤ってnを押すことで置換をスキップした後 :%s/find/replace/gc

    1. は、あなたのあなたが言及した方法を見つけるには、交換する開始
    2. :.,$s/find/replace/gc
    3. 012:あなたはこの言葉でありながら、少し異なる-置き換える見つけるあなた find用語
    4. ランの前の出現に戻ります
    5. プレス
    6. はすべて、この機能は、任意のアドオンをインストールすることなく、vimのネイティブ機能と連携

    操作を続行します。

    注:.,$範囲指定子は現在.で示す)行と($で示す)最後行までで始まる行の範囲にわたって:ssubstitute)操作を実行することを示します。

    注2:それはあなたに知られているが、同様の何かを探して、この投稿時につまずく誰のために反復することがあります - %範囲指定子は上のすべての行、現在アクティブなバッファの:ssubstitute)操作を実行することを示しています。

  • 関連する問題