Ich weiß, wie ich mich im Befehlsmodus im Allgemeinen fortbewegen kann, um gezielt zu Zeilen zu springen usw. Aber wie lautet der Befehl, um an das Ende der Zeile zu springen, in der ich mich gerade befinde?
Nur der $ (Dollarzeichen) Taste. Sie können verwenden A um an das Ende der Zeile zu gelangen und in den Bearbeitungsmodus zu wechseln (Anhängen). Um das letzte nicht leere Zeichen zu springen, können Sie drücken g dann _ Schlüssel.
Das Gegenteil von A ist I (Einfügemodus am Zeilenanfang), beiseite. Drücken Sie einfach die ^ setzt den Cursor an den Zeilenanfang.
Wie viele Leute gesagt haben:
aber auch:
g_ Geht zum letzten Nicht-Leerzeichen.
g$ geht zum Ende der Bildschirmzeile (wenn eine Pufferzeile über mehrere Bildschirmzeilen gewickelt ist)
Die Hauptfrage - Zeilenende
$ geht an das Ende der Zeile, bleibt im Befehlsmodus
A geht zum Zeilenende, wechselt in den Einfügemodus
Umgekehrt - Zeilenanfang (technisch gesehen das erste Nicht-Leerzeichen Zeichen)
^ geht an den Zeilenanfang, bleibt im Kommandomodus
I (i in Großbuchstaben) springt zum Zeilenanfang und wechselt in den Einfügemodus
Weiter - Zeilenanfang (technisch gesehen die erste Spalte unabhängig von Leerzeichen )
(Null) geht an den Zeilenanfang, bleibt im Befehlsmodus
0i (Null gefolgt von Kleinbuchstaben i) geht an den Zeilenanfang, wechselt in den Einfügemodus
Für diejenigen, die mit dem Erlernen von vi beginnen, finden Sie hier eine gute Einführung in vi, indem Sie nebeneinander vi-Befehle für typische Cursorbewegungen und Tastenkombinationen des Windows-GUI-Editors auflisten.
Wenn Ihre aktuelle Zeile um den sichtbaren Bildschirm in die nächste Zeile umgebrochen wird, können Sie verwenden g $ an das Ende der Welt kommen bildschirm Linie.
Das Dollarzeichen: $
Der Vorteil der 'End'-Taste ist, dass sie sowohl im normalen als auch im Einfügemodus funktioniert.
'$' funktioniert nur im normalen/Befehlsmodus, aber auch im klassischen vi-Editor (gut zu wissen, wenn vim nicht verfügbar ist).
In vielen Fällen, wenn wir uns in einem String befinden, werden wir von einem doppelten Anführungszeichen umschlossen, oder wenn wir eine Anweisung schreiben, möchten wir nicht die Escape-Taste drücken und mit der Pfeiltaste zum Ende dieser Zeile gehen und einfach das Semikolon (;
) drücken Beende die Linie. Schreiben Sie die folgende Zeile in Ihre vimrc -Datei:
imap <C-l> <Esc>$a
Was steht in der Zeile? Es ordnet Strg + l einer Reihe von Befehlen zu. Es entspricht dem Drücken von Esc (Befehlsmodus), $ (Ende der Linie), a (anhängen) sofort.
Beachten Sie auch den Unterschied zwischen Zeile (oder vielleicht physische Zeile) und Bildschirmzeile. Eine Zeile wird mit dem Zeichen "End Of Line" ("\ n") abgeschlossen. Eine Bildschirmzeile wird in jedem Fall als eine Zeichenreihe in Ihrem Terminal oder auf Ihrem Bildschirm angezeigt. Die beiden trennen sich, wenn Sie physische Linien haben, die länger als die Bildschirmbreite sind, was beim Schreiben von E-Mails und ähnlichem häufig vorkommt.
Die Unterscheidung wird auch in den Zeilenende-Befehlen angezeigt.
Wenn Sie das letztere Verhalten immer bevorzugen, können Sie die Tasten wie folgt neu zuordnen:
:noremap 0 g0
:noremap $ g$
Drücken Sie A um in den Bearbeitungsmodus zu gelangen, der am Ende der Zeile beginnt.
Oder es gibt die offensichtliche Antwort: Verwenden Sie die End Taste, um zum Ende der Zeile zu gelangen.
Möglicherweise ohne Bezug, aber wenn Sie eine neue Zeile nach der aktuellen Zeile beginnen möchten, können Sie o an einer beliebigen Stelle in der Zeile verwenden.
Ich kann den Hotkey für das MacBook für die Verwendung von vim im Standardterminal nicht sehen. Hoffe, es wird jemandem helfen. Für MacOS-Benutzer (getestet auf MacBook Pro 2018):
fn + ← - zur Anfangszeile gehen
fn + → - Zur Endzeile gehen
fn + ↑ - Seite nach oben verschieben
fn + ↓ - Seite nach unten verschieben
fn + g - Bewegen Sie den Cursor an den Anfang des Dokuments
fn + shift + g - Bewegen Sie den Cursor an das Ende des Dokuments
Für die letzten beiden Befehle muss irgendwann zweimal getippt werden.
Die einfachste Möglichkeit wäre die Eingabe $. Wenn Sie mit Textblöcken arbeiten, werden Sie den Befehl vielleicht zu schätzen wissen { und } um einen Absatz vorwärts bzw. rückwärts zu verschieben.
Ich war es gewöhnt, Home/End im Einfügemodus an den Anfang und das Ende von Zeilen zu bringen (von Windows und meiner Meinung nach Linux), die von Mac nicht unterstützt werden. Dies ist besonders ärgerlich, da ich vim auf einem Remote-System nicht so einfach verwenden kann. Nach einigen mühsamen Versuchen habe ich mir diese .vimrc
Zeilen ausgedacht, die dasselbe tun, aber für den Anfang der Zeile an Strg-A und für das Ende der Zeile an Strg-D gebunden sind. (Aus irgendeinem Grund ist Ctrl-E wohl reserviert oder ich konnte mir zumindest keinen Weg finden, es zu binden.) Viel Spaß.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>
Hier finden Sie eine gute Tabelle für die Steuerzeichencodes ASCII auch für andere:
http://www.physics.udel.edu/~watson/scen103/ascii.html
Sie können auch die Tastenkombination Strg-V + Strg- verwenden, das Einfügen an solchen Stellen ist jedoch nicht so gut.