web-dev-qa-db-ja.com

Vim "最後のコマンドを表示"コマンド?

通常モードで最後のコマンドを表示するコマンドはありますか?

偶然ランダムなキーを押して、予期しない結果が出たとします。元に戻すことはできますが、どのキーが押され、どのように解釈されたのかを明らかにできますか?

54
dvs

コロン(:)次に、上矢印を使用して前のコマンドに戻ります。上/下矢印を使用して、リスト内を移動することもできます。

60
user3620332

q:はVimのコマンド履歴を表示します。 q/は検索履歴を表示します

44
Sushil

最後のコマンドからのテキストは、.レジスタに格納されます。すべてのレジスタを次の方法で確認できます :display。残念ながら、通常のコマンドが何を開始したのかはわかりません。

:(コマンドモード)からのコマンドを表示するには、次のコマンドを使用できます。 :hist または q: これは最後の20に制限されています(デフォルト)。

別の機能は、取り消しバッファーを保存することです :wundo undo.bin -ただし、取り消しバッファはバイナリです。

しかし、これらのどれも実際にあなたの質問に答えません。できるかどうか知りたいです。

11
RunHolt

それを知るのは難しい。変数で遊ぶことができます:

v:operator
v:count (and v:prevcount)
v:register

ただし、最後に発行された通常モードコマンドを完全に取得することはできません。

ただし、Vimで入力するすべてを体系的に記録したい場合は、vim -W ~/.vim-last-scriptout(Windowsバージョン:vim -W "%HOMEPATH%\Vim\.last-scriptout)を起動できます。UNIXマシンのシェルでエイリアスを付けることができます。すべてのキー、またはコントロールキーがそのファイルに記録されます。 gvimまたはvim -g(GUI)をたまたま使用した場合、 このバグに遭遇する になる可能性があることに注意してください。

このファイルを再生する場合は、:source!(感嘆符付き)またはコマンドラインから-sオプションを使用できます。

Windowsでは、コマンダープログラム(FreeCommander)のデフォルトエディターとしてgvimportable.exe -W gvim_directory\last_scriptoutを設定しています。このようにして、何かをするために入力した内容を常に思い出し、別のファイルで一連のコマンドを繰り返すことができます。もちろん、Vimを開いてスクリプトアウトを再生する別のショートカットがあります。

このファイルはVimの終了時にのみ書き込まれる可能性があるため、何をしたかを知るにはセッションを失う必要があることに注意してください。

6
Benoit