通常モードでキーを押した履歴を表示できますか?


32

Vimはexコマンド、検索、ジャンプ場所、変更、およびその他の履歴を保持していることを知っています。

showcmdセット、Vimはまた、そのコマンドが実行されるまでは、これまでの通常モードのコマンドの入力したものをキーいただけます。

時々、通常モードで、タイプミスとアクションが発生します。これらのアクションを元に戻すことはできますが、失策中の編集がどのように発生したかを知りたいことがあります。編集がクールに見える場合があり、将来的にそれを繰り返す方法を知りたいです。

それでは、通常モードでキーを押した履歴を表示する方法はありますか?実際の編集またはアクション(移動やモード変更など)が発生したときに区切ることが望ましいですか?


4
おそらく関連:drbunsen.org/vim-croquet
wchargin

回答:


20

@WCharginからのリンクをもう少したどると、これが見つかりました。

次のように-wor -Wオプションを使用してvimを起動できます。

vim -w keys.txt my_file

入力したすべての文字は、Vimを終了するまでファイル{scriptout}に記録されます。

-w指定されたファイルが存在する場合、追加します。-Wそれを上書きします。

それはあなたが望むものをあなたに十分に得ませんが、それは正しい方向です。

更新: vimを終了するまで、vimは実際にすべてのキーストロークをバッファするように見えますが、ここにはキーストロークをすぐに書き込む1行のパッチがあります


ありがとう!これをソースコードに突っ込むための出発点として使用しています。-wは、通常モードのコマンドだけでなく、すべてのキーを1回押すだけで済むように見えますが、あなたは正しいです。正しい方向です!
ジョン・オム。

@xthrd、これらのkeys.txtファイルはどのようにフォーマット/構造化されていますか?を使用する場合-w、追加は常に長い長い行で行われます。そして、奇妙な文字が表示されます:UTF-8では、新しいバッファでファイルを開くたびに、が取得され€齛ます。これ自体は良いマーカーですが、オプションでログを解析できれば素晴らしいでしょう。
llinfeng

@llinfengまったくフォーマットされていません。それは文字通り、キーストロークが作成された順番に含まれる単なるファイルです。(ただし、キーストロークの一部がの場合<cr>、ファイルには改行が含まれることに注意してください。)これは、主な目的が-sオプションで再生できるファイルの作成にあるためです。しかし、自分で試してみませんか?
リッチ

@Rich明確にしてくれてありがとう。このキー追跡メカニズムを使用して、検索を開始した問題をデバッグしました。[私の教訓はW、コマンドラインにマップしないことです。]
llinfeng

-4

ありq:、コマンド履歴を示しています。

また、部分的に完了したコマンドを押して、一致を循環させることができると便利です。たとえば /abc 、上に押すと、「abc」で始まる検索履歴が循環します


5
Q:ショーのexコマンド履歴、有用であるが、「ad2tn(削除には、第2のnまで登録)のように、通常のコマンドのログはない
ジョンO'M。

コマンドの編集中に、履歴エディターで現在の行を表示し、viを使用して行を編集できることを忘れないでくださいCtrl+f
Sukima
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.