Da ich bereits 2 enge Stimmen gesammelt habe, denke ich, dass dies hierher gehört, da vim ein Programmierer-Editor ist.
Flybywire
28
Ich stimme zu, dies hängt mit der Programmierung zusammen und ist eine echte Frage.
DigitalRoss
41
Jemand hier geht herum und markiert jede Vim-Frage als "gehört zu SU", obwohl die Community vor langer Zeit entschieden hat, dass Vim zu SO gehört, da es sich um ein Programmierwerkzeug handelt.
Brian Carper
@Brian: Haben Sie einen Link zu dem Dokument, in dem dieser Konsens erzielt wurde?
zu viel PHP
12
meta.stackexchange.com/questions/20251/… aber ich erinnere mich, dass dies letztes Jahr irgendwann auftauchte. Vim / Emacs sind IDEs. Darüber hinaus sind die in den Konfigurationsdateien für beide verwendeten Sprachen Turing-vollständige Skriptsprachen, sodass das Einrichten von Vim zunächst selbst programmiert wird.
Ich möchte nur das UndoTree-Plugin rauswerfen, super toll für die Zeiten, in denen Sie sich scheinbar mit einer Flut von Undos und Redos verarscht haben.
Jake Sellers
3
Wenn ich über vi lese, dann handeln meine Finger einfach von alleine. Die vi-Befehle funktionieren nicht beim Stackoverflow. :-)
Ciscogambo
2
Hinweis für Mac-Benutzer: Strg + r in einem Mac-Terminal ruiniert Ihren Tag in vim. Sie kennen nicht die richtige Tastenkombination im Mac-Terminal, um sie rückgängig zu machen, aber es ist definitiv NICHT Strg + r!
Tpartee
@tpartee Ich habe gerade Strg + r in vim unter der Terminal-App von macOS verwendet - hier keine Probleme.
Jase
3
Vielleicht meinte @tpartee, dass es die Cmd + rDinge durcheinander bringt ? Es macht sicherlich etwas Seltsames; aber hat Ctrl + reinfach gut funktioniert für mich (Mac + tmux + vim)
dwanderson
133
Schauen Sie sich auch an :undolist, das mehrere Pfade durch den Rückgängig-Verlauf bietet. Dies ist nützlich, wenn Sie versehentlich etwas eingeben, nachdem Sie zu viel rückgängig gemacht haben.
Verwenden Sie :earlier/ :later. Um alles zu wiederholen, was Sie nur tun müssen
later 9999999d
(unter der Annahme , dass Sie zum ersten Mal vor höchstens 9.999.999 Tagen die Datei bearbeitet), oder, wenn man die Differenz zwischen dem aktuellen Undo Zustand und benötigen ein, Gebrauch erinnern Nh, Nmoder Nsfür Stunden, Minuten und Sekunden auf. + :later N<CR><=> Ng+und :later Nffür Dateischreibvorgänge .
:laterarbeitete für mich in vi(nicht vim - auf Google nach "vi" gesucht, aber alle Ergebnisse sind für "vim"), danke!
Luc
@Luc Fast überall, wo Sie viBefehl haben, ist es ein Symlink zu einer ausführbaren vim-Datei oder einer Kopie davon. Nicht überall.
ZyX
@ ZyX Ich wünschte das wäre wahr. Ich benutze vi erst, nachdem bash a geworfen hat vim: command not found. Das nächste, was ich mache, ist, alias vim=viweil ich es so automatisch tippe, aber es ist trotzdem das einfache alte vi. Außerdem hätte Redo (Strg + R) ordnungsgemäß funktioniert, wenn vi ein Alias für vim gewesen wäre.
Luc
2
9999999d ist vor 27395 Jahren. Ich gehe davon aus, dass die Rückgängig-Funktion damals in vi nicht implementiert war. Möglicherweise möchten Sie sich einen umfassenden Schreibaufwand ersparen und eine angemessene Anzahl verwenden. 9999d entspricht ungefähr 27 Jahren, 999d bis 2,7 Jahren. Ich denke in den meisten Fällen ist das genug ...
<Undo> or *undo* *<Undo>* *u*
u Undo [count] changes. {Vi: only one level}
*:u* *:un* *:undo*
:u[ndo] Undo one change. {Vi: only one level}
*CTRL-R*
CTRL-R Redo [count] changes which were undone. {Vi: redraw screen}
*:red* *:redo* *redo*
:red[o] Redo one change which was undone. {Vi: no redo}
*U*
U Undo all latest changes on one line. {Vi: while not
moved off of it}
: red [o] (eine rückgängig gemachte Änderung wiederholen) und {count} Ctrl+ r(rückgängig gemachte {count} Änderungen rückgängig machen) sind beide in Ordnung.
Auch das : frühere {count} (gehe zum älteren Textstatus {count} mal) könnte immer ein Ersatz für Rückgängig und Wiederherstellen sein.
Ich weiß Ctrlrin Vim selbst Bescheid , aber diese bestimmte Bindung funktioniert nicht in VsVim (zumindest nicht in meinem Setup?).
Was jedoch funktioniert, ist der Befehl :red. Dies ist ein bisschen mühsamer als oben, aber es ist immer noch in Ordnung, wenn Sie es wirklich brauchen.
Downvoted, da die Frage speziell nach vim und nicht nach Visual Studio gestellt wird.
John Von Neumann
3
@JohnVonNeumann Dies ist auf Vim bezogen oder zumindest vim Bindungen, gerade im Kontext von VS. Das hat mich schließlich zu dieser Frage gebracht. Jemanden dafür zu bestrafen, dass er ein bisschen mehr Informationen hinzugefügt hat, scheint ein wenig hart und unangebracht zu sein, finden Sie nicht, auch wenn es vielleicht etwas über den Rahmen des OP hinausgeht?
Kjartan
2
In der Praxis :undolistist das schwer zu bedienen und die Vim- :earlierund :laterZeiterfassung von Änderungen ist nur für Kurskorrekturen verwendbar.
Angesichts dessen greife ich auf ein Plug-In zurück, das diese Funktionen kombiniert, um einen visuellen Baum mit durchsuchbaren Rückgängigmachungen namens "Gundo" bereitzustellen.
Dies ist natürlich nur dann zu verwenden, wenn Sie eine feinkörnige Korrektur benötigen oder wenn Sie sich nicht sicher sind, zu welchem genauen Status des Dokuments Sie zurückkehren möchten. Siehe: Gundo. Zeichnen Sie Ihren Vim-Rückgängig-Baum mit Stil
Antworten:
Ctrl+r
quelle
Cmd + r
Dinge durcheinander bringt ? Es macht sicherlich etwas Seltsames; aber hatCtrl + r
einfach gut funktioniert für mich (Mac + tmux + vim)Schauen Sie sich auch an
:undolist
, das mehrere Pfade durch den Rückgängig-Verlauf bietet. Dies ist nützlich, wenn Sie versehentlich etwas eingeben, nachdem Sie zu viel rückgängig gemacht haben.quelle
:undolist
und geben Sie:undo 178
(sagen wir) ein, um zu Schritt 178 zurückzuspulen.:undolist
?Verwenden Sie
:earlier
/:later
. Um alles zu wiederholen, was Sie nur tun müssen(unter der Annahme , dass Sie zum ersten Mal vor höchstens 9.999.999 Tagen die Datei bearbeitet), oder, wenn man die Differenz zwischen dem aktuellen Undo Zustand und benötigen ein, Gebrauch erinnern
Nh
,Nm
oderNs
für Stunden, Minuten und Sekunden auf. +:later N<CR>
<=>Ng+
und:later Nf
für Dateischreibvorgänge .quelle
:later
arbeitete für mich invi
(nicht vim - auf Google nach "vi" gesucht, aber alle Ergebnisse sind für "vim"), danke!vi
Befehl haben, ist es ein Symlink zu einer ausführbaren vim-Datei oder einer Kopie davon. Nicht überall.vim: command not found
. Das nächste, was ich mache, ist,alias vim=vi
weil ich es so automatisch tippe, aber es ist trotzdem das einfache alte vi. Außerdem hätte Redo (Strg + R) ordnungsgemäß funktioniert, wenn vi ein Alias für vim gewesen wäre.Vim-Dokumentation
quelle
Verwenden Sie im Befehlsmodus die UTaste zum Rückgängigmachen und Ctrl+ rzum Wiederherstellen. Schauen Sie sich http://www.vim.org/htmldoc/undo.html an .
quelle
Drücken Sie zuerst die EscTaste, um den Bearbeitungsmodus zu verlassen.
Dann,
Für undo , Verwendung uTaste so oft wollen Sie rückgängig machen.
Verwenden Sie zum Wiederherstellen die Taste Ctrl+r
quelle
Weitere Informationen finden Sie im Abschnitt "Rückgängig" und "Wiederherstellen" des Vim-Dokuments .
: red [o] (eine rückgängig gemachte Änderung wiederholen) und {count} Ctrl+ r(rückgängig gemachte {count} Änderungen rückgängig machen) sind beide in Ordnung.
Auch das : frühere {count} (gehe zum älteren Textstatus {count} mal) könnte immer ein Ersatz für Rückgängig und Wiederherstellen sein.
quelle
CTRL+r
Das "r" ist klein geschrieben.
quelle
^r
und^R
, und Vim folgt dem.^X
(wobeiX
ein beliebiger Buchstabe sein kann).Verwenden Sie VsVim für Visual Studio?
Ich bin darauf gestoßen, als ich mit VsVim experimentiert habe, das Bindungen für Vim-Befehle in Visual Studio bereitstellt .
Ich weiß Ctrlrin Vim selbst Bescheid , aber diese bestimmte Bindung funktioniert nicht in VsVim (zumindest nicht in meinem Setup?).
Was jedoch funktioniert, ist der Befehl
:red
. Dies ist ein bisschen mühsamer als oben, aber es ist immer noch in Ordnung, wenn Sie es wirklich brauchen.quelle
In der Praxis
:undolist
ist das schwer zu bedienen und die Vim-:earlier
und:later
Zeiterfassung von Änderungen ist nur für Kurskorrekturen verwendbar.Angesichts dessen greife ich auf ein Plug-In zurück, das diese Funktionen kombiniert, um einen visuellen Baum mit durchsuchbaren Rückgängigmachungen namens "Gundo" bereitzustellen.
Dies ist natürlich nur dann zu verwenden, wenn Sie eine feinkörnige Korrektur benötigen oder wenn Sie sich nicht sicher sind, zu welchem genauen Status des Dokuments Sie zurückkehren möchten. Siehe: Gundo. Zeichnen Sie Ihren Vim-Rückgängig-Baum mit Stil
quelle