Bei Verwendung von set showcmd
Vim werden Teilbefehle in der letzten Zeile des Bildschirms angezeigt. Im normalen Modus wird beispielsweise beim Eingeben des Befehls dt.
die letzte Zeile angezeigt , dt
und wenn Sie .
den Befehl drücken, ist der Befehl abgeschlossen und daher wird nichts angezeigt.
Gibt es eine Möglichkeit, vollständige Befehle anzuzeigen? Zum Beispiel würde beim Tippen dt.gU(
zuerst dt.
angezeigt; und wenn mit der Eingabe des zweiten Befehls begonnen wird, wird der erste gelöscht, so dass am Ende nur gU(
noch angezeigt wird.
Dies kann beispielsweise bei der Veranschaulichung von GIFs hilfreich sein. und um zu überprüfen, ob Sie das eingegeben haben, was Sie wollten, wenn Sie auf ein unerwartetes Ergebnis stoßen.
dt.gU(
es zwei Befehle: dt.
und gU(
... Sie möchten also wirklich eine Art Befehlsverlauf anzeigen (Vim zeigt bereits die "vollständigen Befehle" an).
src/normal.c
den Code - Anrufe clear_showcmd()
an mehreren Stellen ( normal_cmd()
, do_pending_operator()
, end_visual_mode()
). Ich spiele mit dem Dumping in eine Datei showcmd_buf
an diesen Stellen, was ziemlich gut aussah, aber ich bin mir ziemlich sicher, dass Sie nicht das bekommen können, was Sie wollen, ohne den Vim-Quellcode auf ähnliche Weise zu ändern und neu zu erstellen. Natürlich könnte es sich lohnen, Ihre Gifs zu erstellen.
dt
wird angezeigt, weil der aktuelle Operator aussteht. Sobald eine Bewegung vorliegt, steht kein Operator mehr aus. Angenommen, wir gingen weiter und taten esdt.gU(gu)daw
oder so. Ist das alles "ein vollständiger Befehl" oder sind es vier vollständige Befehle oder etwas anderes?