Відповіді:
Гарне питання!
Оскільки рух сам по собі, ти маєш рацію, _
не є особливо корисним ключем.:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
Ключове слово тут - "лінійно". Отже, якщо ваша мета - просто перемістити курсор, то ^
, j
і, +
все виконати роботу, і немає великого сенсу _
. Але як аргумент оператору, _
це супер потужно.
Багато клавіш із подвійним клавішем насправді є лише ярликами _
. Наприклад,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
Так як це лінійний рух, він в основному вибирає всю лінію, якою буде керувати, незалежно від того, з чого починається ваш курсор, тоді як ^
просто переходить від вашого персонажа до першого непустого.
Це допомагає мені, коли я замислююся над рухомими лініями та блокадними рухами, уявити, що я натискаю v
або V
перед, або прямо перед рухом. Таким чином, я уявляю d^
себе рівнозначним v^d
і уявляю d_
себе рівнозначним V_d
або V^d
. Звичайно, ви також можете змінити рух, щоб змусити його бути лінійним чи символьним. Тож dv_
насправді точно так само, як d^
або v^d
, і dVw
є таким Vwd
, як саме d_
.
Причина, що саме "рядок-1" рядок, полягає в тому, що 1dd
(що насправді d1_
) видаляється один цілий рядок, 2dd
(який є насправді d2_
) видаляється 2 цілих рядка, 3dd
видаляється 3 цілих рядка і т.д.
dd
може бути зручнішим ніж d_
, але це тому, що dd
це лише відображення d_
. І це також корисно в vimscript.
gUU
? Я думаю, що варто було б знайти фактичний приклад, де він <operator>_
би використовувався.
dd
легшеd_
і3yj
легше, ніж4y_
.