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?
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.
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 ).
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
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:
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
/c
und drücken ↑. Sie werden feststellen , es zeigt/cyprus
dann/cuba
dann/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.quelle
q:
im normalen Modus eingeben . Gleiches gilt für den Suchverlauf mitq/
Sie können dies zu Ihrer .vimrc hinzufügen:
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
ex
Befehle sprechen , ist Gareths Markise der richtige Wegquelle