Was macht die Unterstrichbewegung in vim?

10

Ich verstehe die Unterstrichbewegung in vim nicht, zumindest nicht im Zusammenhang mit yank (y). Mein Spickzettel liest

"soft" bol down

was ich nicht verstehe. Wenn ich die Bewegung alleine benutze, scheint es dasselbe zu sein, ^was bedeutet, dass ich zum ersten Nicht-Leerzeichen in der Zeile gehe. Wenn ich jedoch die Bewegung mit verwende y, wird die gesamte Zeile (wie yy oder Y) gezogen, aber y^nicht die gesamte Zeile, sondern nur das erste Nicht-Leerzeichen, exklusiv, wie zu erwarten.

Also, was genau soll der Unterstrich tun?

Tyler Durden
quelle

Antworten:

12

Ohne Zählung ^und _sind zwar gleichwertig, aber letztere unterstützt eine Zählung:

  _  <underscore>         [count] - 1 lines downward, on the first non-blank
                          character |linewise|.

Das linewiseerklärt Ihre zweite Beobachtung: Wenn es als Bewegung verwendet wird, deckt es nicht nur den Text zwischen der vorherigen und der neuen Position ab, sondern den gesamten Satz von Linien.

Das sorgfältige Lesen :helpliefert diese Erkenntnisse. Sie werden auch (durch Nähe) sehen, dass der _Befehl eng mit +und verwandt ist -.

Ingo Karkat
quelle
Hmmm, ok, was ist dann der Unterschied zwischen y2_ und y2 +?
Tyler Durden
2
@ TylerDurden Die Differenz beträgt 1 (Linie), ebenso wie die Differenz zwischen [count] - 1und [count]für jeden Wert von [count]. Wie Ingo erwähnte, würde es Ihnen etwas Gutes tun, die integrierte Hilfe von vim zu lesen, was ziemlich klar ist.
jw013
3
Warum _existiert der Befehl - warum sollte es jemand vorziehen +?
Aaron Thoma
Nicht zu streiten, aber die Hilfe ist in diesem Fall etwas verwirrend. [count] - 1 lines downward- Für mich lautete "Anzahl: 1 Zeilen nach unten" anstelle der korrekten Interpretation. Ich weiß, macht nicht einmal viel Sinn, aber es gibt ein wenig Raum für Verwirrung.
André Chalella