Gehen Sie zum Zeilenanfang, ohne eine neue Zeile in VI zu öffnen


228

Seit Ewigkeiten benutze ich SHIFTOund SHIFT$gehe zum Anfang und Ende einer Zeile in vi.

Dies SHIFTOist jedoch mehr zum Öffnen einer neuen Zeile über dem Cursor.

Gibt es einen Befehl, der Sie nur zum Anfang einer Zeile führt?


9
Geben Sie zusätzlich zu den folgenden Antworten Folgendes ein: help left-right-motions in Vim, um zahlreiche Informationen zu erhalten.
ngm

ein gutes buch für vim: üben in vim. ^ 0
23.

Antworten:


425

Sie können ^oder 0(Null) im normalen Modus verwenden, um zum Zeilenanfang zu gelangen.

^bewegt den Cursor auf das erste nicht leere Zeichen einer Zeile
0bewegt den Cursor immer auf die "erste Spalte"

Sie können auch Shiftiverschieben und in den Einfügemodus wechseln.


5
Auch Shift + A und Shift + I gehen zum Ende bzw. Anfang der Zeile und
wechseln

7
Drücken ^ist für mich normalerweise nicht so einfach wie Drücken 0und wnacheinander.
DXDXY

33

Ein einfaches 0bringt Sie zum Anfang einer Zeile.

:help 0 für mehr Informationen



12

Sie können 0oder verwenden ^, um zum Zeilenanfang zu gelangen.
Mit Shift+ können Sie Izum Anfang wechseln und in den Bearbeitungsmodus wechseln ( Einfügen ).


Ihre Antwort ist größtenteils richtig, aber es gibt eine kleine Einschränkung. Shift+Ioder ^bewegt den Cursor an den Anfang des Textes in der Zeile. Wenn die Zeile nam Anfang Tabulatoren enthält, bewegt sie den Cursor in die n*tabstop + 1Spalte. Während 0bewegt den Cursor zur allerersten Spalte der Zeile.
Narendra-Choudhary

10

Es geht auch anders:

|

Das ist die "Pipe" - das Symbol, das sich im ANSI-Layout unter der Rücktaste befindet .

Vim quickref ( :help quickref) beschreibt es als:

N      |      to column N (default: 1)

Was ist mit umbrochenen Linien?

Wenn Sie Zeilenumbrüche aktiviert haben 0und |nicht mehr zum Anfang der Bildschirmzeile gelangen. In diesem Fall verwenden Sie:

g0

Wieder vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)

Jetzt sehe ich, warum es funktioniert. Vielen Dank. Ich habe mich gewundert. Ich denke es ist besser als 0weil |und $sind auf dem gleichen Schlüssel.
WesternGun


6

Bewegen Sie den Cursor zum Anfang oder Ende mit dem Einfügemodus

  • I - Bewegt den Cursor auf das erste nicht leere Zeichen in der aktuellen Zeile und aktiviert den Einfügemodus.
  • A - Bewegt den Cursor zum letzten Zeichen in der aktuellen Zeile und aktiviert den Einfügemodus.

Hier Ientspricht ^+ i. Ähnlich Aist $+ äquivalent a.

Bewegen Sie den Cursor einfach zum Anfang oder Ende

  • ^ - Bewegt den Cursor auf das erste nicht leere Zeichen in der aktuellen Zeile
  • 0 - Bewegt den Cursor auf das erste Zeichen in der aktuellen Zeile
  • $ - Bewegt den Cursor zum letzten Zeichen in der aktuellen Zeile

5

Ich habe gerade 0 (Null) gefunden und Shift + 0 funktioniert auf vim.


5
shift+0Das )ist der nächste Satz
Mihai

Shift+0ist besser, ^zeigt den Charakter und das ist nervig. Danke
Calbertts

1

0 Bringt Sie zum Anfang der Zeile

Shift 0 Bringt Sie zum Ende der Linie


Shift-0 (')') bringt Sie nicht zum Anfang der Zeile
Boris Churzin

@Devenv: Das stimmt! 0 wird
Sagar Jain

1
Shift-0 (")") ist "Satz vorwärts", nicht "Zeilenende" (das habe ich gemeint)
Boris Churzin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.