通常のVimではこれを行う方法を見つけることができませんでした。ただし、Vimにパッチを適用する場合は、次の方法が役立つことがあります。
非常に単純なパッチ(Vim-7.4.052に対して適用)は、通常のコマンドの最後に履歴をクリアする画面への実際の更新を無効にします。これはshowcmd_is_clear
、表示を更新する前にが設定されているかどうかを返すことによって行われます。(または、ifステートメントをコメントアウトして、元の1 return
行だけを残すことができます。注:以下のパッチはうまく貼り付けられませんでした。短い1行ですが、手動で適用する必要がある場合があります。注:私はなかったではない、実際にコメントアウトしdisplay_showcmd()
、選択した行または他の可能性が他のものの数の表示を更新するには、ビジュアルモードで使用しているように見えるので、私は広範囲にこれをテストしていません。
--- src/normal.c 2015-02-14 00:21:23.286352257 -0500
+++ src/normal.c 2015-02-14 00:21:25.238352173 -0500
@@ -4029,6 +4029,7 @@
/* Don't actually display something if there is nothing to clear. */
if (showcmd_is_clear)
return;
+ return;
}
display_showcmd()
結果は次のようになります。
注意すべきいくつかの興味深い事柄:
- この番組であっても、単純な動き、のような
j
、k
、b
、など
x
このコマンドは、実際になりdl
showcmd_bufに。
- 一番下の行を変更するコマンドは、showcmd領域を消去します(たとえば、
:
コマンドを使用するか、挿入モードに入る(少なくとも私のセットアップで))。
- キャプチャプログラムは、aを入力した後、多くのストロークの記録を停止し
"
ましたが、長いレジスタ指定のヤンクのキーシーケンスがvimウィンドウに表示されます。
- キャストには表示されませんがesc、通常モード
^[
でのヒットはshowcmd領域に表示されます
dt
それは保留中の現在のオペレータのために示されています。いったん動きが与えられると、それはもはや保留中のオペレーターではありません。さらに進んだとしましょうdt.gU(gu)daw
。それはすべて「1つの完全なコマンド」ですか、それとも4つの完全なコマンドですか、それとも他の何かですか?