Відповіді:
Гарне питання!
Оскільки рух сам по собі, ти маєш рацію, _не є особливо корисним ключем.: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_.