Ich weiß, dass ich entweder verwenden kann:
- Home im Einfügemodus
- Esc+ i, um den Einfügemodus zu verlassen und ihn erneut aufzurufen und effektiv zum Zeilenanfang zu gelangen.
Aber keiner befriedigt mich. Im ersten Fall muss ich meinen Kopf neigen, um zu schlagen Home, weil ich ihn nicht blind schlagen kann. Im zweiten Fall muss mein linker Arm die Ausgangsreihe verlassen, um zu treffenEsc , was ebenfalls ärgerlich ist.
Irgendwelche Gedanken?
Antworten:
Ctrl+ OIm Einfügemodus gelangen Sie nur für einen Tastendruck in den Befehlsmodus. Deshalb sollte Ctrl+ Odann Shift+ Idas erreichen, wonach Sie suchen.
quelle
Ctrl-o
gefolgt von0
(etwas effizienter alsCtrl-o
gefolgt vonShift-I
), da Sie automatisch wieder in den Einfügemodus zurückkehren. In einigen Fällen ist es möglicherweise besser ,Ctrl-o
gefolgt von^
(zum ersten Nicht-Leerzeichen der Zeile zu wechseln).<C-O>
ist nicht dasselbe wie<C-[>
oder<Esc>
obwohl sie gleich aussehen können. Der Unterschied besteht darin, dass bei einer Bearbeitung mit einem regulären Escapezeichen + <etwas, das Sie wieder in den Einfügemodus versetzt> zwei Änderungen vorgenommen werden, während bei <CO> eine Änderung verbleibt. Auf diese Weise können Sie einen saubereren Rückgängigmachungsverlauf aufrechterhalten und diesen Einsatz zum Einfügen wiederverwenden. Einige Vim'er werden argumentieren, dass Sie auf solche Dinge achten sollten.Sie können den Einfügemodus mit aufrufen
I
(Großbuchstaben i) aufrufen.Der Cursor wird an den Zeilenanfang gesetzt.
Ebenso können Sie verwenden
A
am Ende der Zeile etwas hinzufügen.Das Problem des Bewegens im Einfügemodus wird jedoch nicht wirklich gelöst.
Ich habe gerade die Hilfe im Einfügemodus überprüft. Im Einfügemodus gibt es keine Tastenkombination, um sich am Zeilenanfang zu bewegen.
Andere Idee: Ordnen Sie einen neuen Befehl nur im Einfügemodus neu zu
inoremap <C-i> <Home>
quelle
Ich habe Strg + a und Strg + e auf den Anfang bzw. das Ende der Zeile abgebildet. Dies entspricht dem Verhalten der meisten Bash-Befehlszeilen. Funktioniert gut für mich.
quelle
<C-e>
Kopieren / Schreiben des Zeichens unter den Cursor (<C-y>
für Über-Cursor),<C-a>
Einfügen von allem, was sich in Ihrem.-Register (Punktregister) befindet. Dieses Register wird mit allem gefüllt, was Sie gerade eingegeben haben, wenn Sie den Einfügemodus verlassen (auch wenn Sie Strg-C verwenden (woran Sie sich aus vielen Gründen nicht gewöhnen sollten).Wenn Sie das MacOS Terminal verwenden, gehen Sie zu Einstellungen ...> Einstellungen> Tastatur und ordnen Sie die Endtaste Strg-O $ zu (sie wird als \ 017 $ angezeigt). Verwenden Sie dann fn + left, um die Endtaste zu simulieren. Machen Sie dasselbe für den Home-Schlüssel. Escape-Sequenz \ 033 [H funktioniert auch für zu Hause.
quelle
Ihre beste Vorgehensweise besteht darin, die Aktion einer anderen Taste zuzuordnen ( Ideen finden Sie unter Neuzuordnen von <Strg-Home>, um zur ersten Zeile in der Datei zu gelangen? ).
Ich würde mir überlegen, wie oft ich diese "Funktion" verwende und sie einem Tastenanschlag entsprechend zuordne
quelle
Sie können die Schlüssel dazu zuordnen:
ref: http://vim.wikia.com/wiki/Quick_command_in_insert_mode
quelle
Eine Abkürzung, die für mich funktioniert hat (sowohl Muskelgedächtnis als auch Intuitivität), ist das Zuordnen
__
(was ein Doppel ist_
) zu "Einfügen am Anfang der aktuellen Zeile".Begründung:
_
geht schon zum Zeilenanfang_
widerspricht keinen Bewegungen (Sie stehen bereits am Anfang der Zeile)vimscript:
Es ist so kompliziert, weil die einfache Alternative dazu führt,
nnoremap __ _I
dass vim beim Drücken verzögert_
, um zwischen_
und zu unterscheiden__
.quelle
quelle
Ich benutze diesen Befehl, um zum Zeilenende zu gelangen, ohne den Einfügemodus zu verlassen
Ähnlich geht es zum Zeilenanfang:
quelle