2017-08-17 6 views
0

私はvimをかなりの時間使用していますが、1日に数回、私は偶然、ESCを押すことで不便を感じます。私は2番目のものを除くすべての行にhomehouseを変更したいvimでESCキーストロークを取り消す

I want to change 'house' in this line. 
'house' should stay like this. 
This 'house' should become 'home' 
The other 'house' should also change. 

は、私は、次のファイルを編集していたと。 (この簡単な例では、:sコマンドを記述してタスクを実行するのは簡単ですが、通常、タスクはより具体的であり、手作業での置換はより迅速でエラーの発生が少ない)。houseの最初のオカレンスに移動し、cwを入力し、honeESCにヒットします。 ESCを打った後、私は偶然、mの代わりにnという文字を入力したことを認識しています。

  1. 私はhouseの次の出現に移動し、障害のある交換を繰り返す.を打つことができました。この場合は、すべてhoneを修正してからnmに置き換えてください。

  2. 私はすぐに間違いを修正することもできますが、その後、私は同じhouse繰り返すことはできません - >m交換 - .nを繰り返してしまうことから、>home交換を。

私がESCを打つ前に間違いを発見した場合、これは問題ありません。私の質問は、.が両方の動作を繰り返すように、挿入モードから抜け出す方法がある場合です。または同様に、.に最後の操作を繰り返すように指示する方法はありますか?

(もちろんこれは、マクロの記録のように聞こえるが、私は誤ってこのような状況で終わることから、私はマクロの記録を開始していない。)

+0

このシナリオの確率を見積もることができます。単語を100回変更すると、間違いを何回繰り返しますか。 > 15-20倍の場合は、実際にタイピングスキルを練習する必要があります。 Vimは、後者の操作が修正または新しい操作であることを知らない。それが「間違い」で、変更を繰り返すために '.'を押すことが分かっている場合は、' esc'を押す前に二重チェックをしないでください。 – Kent

答えて

1

限り私が懸念していますように、のはコマンド履歴はありませんあなたは最後の2つの操作を繰り返すことができるという点でvim。

しかし、それを達成するのに役立つプラグインがあります。この正確な要件に対処するためにはthe RepeatLast.vim pluginと呼ばれています。それは2\.キーバインディングを提供します。そのプラグインを使用するためのコストと実際にプラグインがどのように動作するかは、実際にはマクロ記録を可能にします。いつも。しかし、あなたがそれで生きることができるなら、それはこの種の状況をかなりうまく扱うべきです。

関連する問題