Antworten:
Gute Frage!
Als Bewegung für sich allein haben Sie recht, _ist kein besonders nützlicher Schlüssel.:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
Das Schlüsselwort hier ist "linewise". Also , wenn Ihr Ziel ist es , nur den Cursor zu bewegen, dann ^, jund +alle den Job zu erledigen, und es gibt nicht viel Sinn zu _. Aber als Argument für einen Operator, _ist super mächtig.
Viele Tastenkombinationen sind eigentlich nur Abkürzungen für _. Beispielsweise,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
usw. Da es sich um eine linienweise Bewegung handelt, wird im Grunde genommen die gesamte zu bearbeitende Linie ausgewählt, unabhängig davon, wo der Cursor beginnt, wohingegen ^nur von Ihrem Charakter zum ersten nicht leeren Bereich übergegangen wird.
Es hilft mir, wenn ich über lineare oder blockweise Bewegungen nachdenke, mir vorzustellen, dass ich entweder voder Vdirekt vor der Bewegung drücke . Also stelle ich mir d^vor, äquivalent zu sein v^dund ich stelle mir d_vor, äquivalent zu V_doder zu sein V^d. Natürlich können Sie eine Bewegung auch außer Kraft setzen, um die Linien- oder Zeichenweise zu erzwingen. Ist dv_also eigentlich genauso wie d^oder v^d, und dVwist wie Vwdwas genau so ist d_.
Der Grund, warum es speziell die "count-1th" -Zeile ist, ist, dass 1dd(was wirklich ist d1_) eine ganze Zeile löscht, 2dd(was wirklich ist d2_) 2 ganze Zeilen 3ddlöscht, 3 ganze Zeilen löscht usw.
ddist vielleicht praktischer als d_, aber das liegt daran, dass ddes sich nur um eine Zuordnung handelt d_. Und es ist auch nützlich in Vimscript.
gUU? Ich denke, es lohnt sich, ein aktuelles Beispiel zu finden, in dem <operator>_es verwendet wird.
ddist einfacher alsd_und3yjist einfacher als4y_.