Kann ich in VIM herausfinden, welche Tasten ich gerade eingegeben habe?

11

Manchmal verwende ich VIM und es passiert etwas, und ich weiß nicht, was es war oder was ich eingegeben habe, das es verursacht hat. Gibt es eine Möglichkeit, einige der zuletzt eingegebenen Tasten aufzulisten und noch besser herauszufinden, welche Aktionen sie ausgelöst haben?

Owen
quelle

Antworten:

7

Vimhat eine Option, die -WSie missbrauchen könnten, aber sie funktioniert nicht, solange sie Vimnoch läuft.

-w {scriptout}

Alle von Ihnen eingegebenen Zeichen werden in der Datei {scriptout} aufgezeichnet, bis Sie Vim beenden. Dies ist nützlich, wenn Sie eine Skriptdatei erstellen möchten, die mit "vim -s" oder ": source!" Verwendet werden soll. Wenn die Datei {scriptout} vorhanden ist, werden Zeichen angehängt.

-W {scriptout}

Wie -w, aber eine vorhandene Datei wird überschrieben.

Anrufen Vimmit zB einem Alias

vim -W /tmp/vimlog-$(id -un)

lassen Sie mit inspizieren less /tmp/vimlog-$(id -un)oder cat -v /tmp/vimlog-$(id -un)was Sie buchstäblich eingegeben , nachdem Sie verlassen Vim.

peth
quelle
Das ist eine interessante Idee. Ich werde es versuchen und sehen, ob ich etwas lerne.
Owen
3

Stellen Sie zunächst sicher, dass sich vim überhaupt an alle Zeilen der Geschichte erinnert. Dadurch wird der Verlauf auf 1000 Befehle und Suchvorgänge festgelegt:

:set history=1000

Wenn Sie den Anfang dessen eingeben, wonach Sie suchen, können Sie mit den Tasten durch den Verlauf scrollen - dies gilt für Befehle und Suchen.

Wenn Sie zum Beispiel nach China, dann nach Kuba, dann nach Tschad und dann nach Zypern gesucht haben :

Sie können mehrmals tippen /cund drücken . Sie werden feststellen , es zeigt /cyprusdann /cubadann /china( wird /Chadübersprungen , da sie nicht mit einem nicht startet c ).

Andere Befehle:

  • :history listet den gesamten Verlauf auf.
  • :his listet den Befehlsverlauf auf.
  • :his / listet den Suchverlauf auf.
Gaff
quelle
2
Ich denke nicht, dass dies für Befehle im normalen Modus nur für Befehle im Ex-Modus gilt (
dh
1
Um den Verlauf der Ex-Befehle anzuzeigen, können Sie auch einfach q:im normalen Modus eingeben . Gleiches gilt für den Suchverlauf mitq/
Yab
2

Sie können dies zu Ihrer .vimrc hinzufügen:

set showcmd

In der Statusleiste wird der Befehl angezeigt, den Sie während der Eingabe ausführen. Dies gibt Ihnen zwar keine Geschichte, aber dies ist die naheliegendste Lösung, die ich kenne.

Wenn Sie jedoch über exBefehle sprechen , ist Gareths Markise der richtige Weg

Yab
quelle