web-dev-qa-db-de.com

Wie bewege ich mich in Vim zum Zeilenende?

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?

1105
salt.racer

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.

1907
dvorak

Wie viele Leute gesagt haben:

  • $ bringt Sie ans Ende der Linie

aber auch:

  • ^ oder _ bringt Sie zum ersten Nicht-Leerzeichen in der Zeile und
  •  (Null) bringt Sie zum Zeilenanfang inkl. Leerzeichen
287
Rob Wells
  • $ bewegt sich zum letzten Zeichen in der Zeile.
  • g_ Geht zum letzten Nicht-Leerzeichen.

  • g$ geht zum Ende der Bildschirmzeile (wenn eine Pufferzeile über mehrere Bildschirmzeilen gewickelt ist)

132
Paul Ruane

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.

vi editor für Windows Benutzer

58
ap-osd

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.

41

Das Dollarzeichen: $

12
David Singer

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).

12
Diastrophism

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.

12
Pramod

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.

  • $ und  An das Ende oder den Anfang der physischen Zeile bzw. des Absatzes gehen:
  • g$ und g Bewegen Sie sich an das Ende oder den Anfang der Bildschirmzeile bzw. des Absatzes.

Wenn Sie das letztere Verhalten immer bevorzugen, können Sie die Tasten wie folgt neu zuordnen:

:noremap 0 g0
:noremap $ g$
11
loevborg

Drücken Sie A um in den Bearbeitungsmodus zu gelangen, der am Ende der Zeile beginnt.

9
Brian

Oder es gibt die offensichtliche Antwort: Verwenden Sie die End Taste, um zum Ende der Zeile zu gelangen.

9
davr

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.

6
graywh

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.

4

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.

3
paranza

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.

2
Marcus