Manchmal habe ich im Einfügemodus versehentlich <CR>
die Rücktaste mehrmals gedrückt (abhängig von der Einrückung), um dorthin zurückzukehren, wo ich war.
z.B
<div>
<p> This is some text []</p>
</div>
Der Cursor ist []
und ich drücke <CR>
:
<div>
<p> This is some text
[]</p>
</div>
Jetzt muss ich zweimal die Rücktaste drücken, um zur vorherigen Zeile zurückzukehren (dieser Fall ist nicht so schlimm, hat aber nicht viele Einrückungen).
Kennen Sie einen besseren Weg?
insert-mode
nobe4
quelle
quelle
ctrl+w
zweimal scheint zu funktionieren und ziemlich einfach zu seinAntworten:
Wie wäre es mit:
<C-o>
Führt einen Normalmodus-Befehl (:left 0
) aus, der alle Einrückungen entfernt. Dadurch wird der Cursor auch an den Zeilenanfang gesetzt.<BS>
bringt Sie zurück in die letzte Zeile.Dies ist ein bisschen wie ein "Rückwärts
J
".Leider scheint die Zuordnung von Umschalt + Eingabetaste oder Strg + Eingabetaste nicht möglich zu sein, daher wähle ich
<C-\>
"in der Nähe der Eingabetaste".quelle
<C-u>
statt verwenden<C-o>:left 0<CR>
?J
": Alsofoo<CR>bar<C-\>
wirst du mit lassenfoobar
. IMHO ist es nützlicher, aber YMMV.<C-u>
(dh i_CTRL-U ) dasselbe sein sollte wie<C-o>:left 0<CR>
.foo<CR>bar<C-u>
Sie etwas eingeben , erhalten Siefoo<CR>
(+ einen von Vim eventuell hinzugefügten automatischen Einzug).<C-o>:left 0<CR>
verhält sich unabhängig von der Cursorposition immer gleich.Ich habe dies in meinem
vimrc
, der zweite Teil ist relevant:Was dies bewirkt: Jedes Mal, wenn Sie
Enter
im Einfügemodus drücken , wird "die Rückgängig-Sequenz unterbrochen , neue Änderung gestartet" (sieheh: i_CTRL-G_u
). Das bedeutet, dass wenn Sie drücken SieEnter
versehentlich, Sie können jetzt rückgängig machen Ihre Änderung ohne vorherige eingefügten Zeilen zu entfernen, entweder mitESC u a
oder mitCtrl-o u
, wie Statox vorgeschlagen. Grundsätzlich kann jede Zeile einzeln rückgängig gemacht werden.Quelle
BEARBEITEN / AKTUALISIEREN: Wenn Sie die Vim-Emulation in Emacs verwenden, auch bekannt als Böse-Modus , können Sie dieses Paket für einen ähnlichen Effekt verwenden.
quelle
<c-y>
Zusammenhang mit dem Popup-Menü.Ctrl-y
im Einfügemodus wird die aktuelle Popup-Auswahl vervollständigt, und die obige Zuordnung wird es auch ermöglichen,Enter
zu vervollständigen."<c-g>u<cr>"
durch ersetzen&paste ? "<cr>" : "<c-g>u<cr>"
, da Sie sonst beim nächsten Einfügen aus Versehen 200 Zeilen HTML-Code viel Spaß daran haben, ihn rückgängig zu machen. :)paste
ist, sind Zuordnungen imbackspace
Einstellung der Option möglicherweise nicht funktionieren .So mache ich es Ctrl-wBackspace.
Ctrl-wum das letzte wort zu löschen (ich habe vergessen, ob dies standard vim ist oder nicht) und da es nur ein Leerzeichen ist, werde ich zum anfang der zeile zurückkehren. Dann Backspacebringe ich mich zurück zur vorherigen Zeile, in der ich war.
quelle
Ctrl-w
Verwendung im Einfügemodus. Der Carpetsmoker ♦ ist aber noch schneller. Daher scheint die Standardbindung von "Strg-" nicht so nützlich zu sein.:help i_CTRL-W
. Und zweimal drücken reicht auch?<C-u>
Mein Ausweg ist (aus dem Einfügemodus) UpCtrl-oJDel. Möglicherweise nicht die effizienteste Kombination, aber es ist das, was ich tue, ohne darüber nachdenken zu müssen.
quelle