Estoy un poco desconcertado de por qué el comando de subrayado _
, que salta al comienzo de la línea (COUNT - 1) debajo del cursor, obtiene su propia clave. ¿Cuándo usaría esto en lugar de +
o ^
?
fuente
Estoy un poco desconcertado de por qué el comando de subrayado _
, que salta al comienzo de la línea (COUNT - 1) debajo del cursor, obtiene su propia clave. ¿Cuándo usaría esto en lugar de +
o ^
?
¡Buena pregunta!
Como un movimiento en sí mismo, tienes razón, _
no es una clave particularmente útil.:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
La palabra clave aquí es "linealmente". Entonces, si su objetivo es simplemente mover el cursor, entonces ^
, j
y +
todos hacen el trabajo, y no tiene mucho sentido _
. Pero como argumento para un operador, _
es súper poderoso.
Muchos atajos de doble clave son en realidad solo atajos para _
. Por ejemplo,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
etc. Debido a que es un movimiento en línea, básicamente selecciona la línea completa para ser operada, independientemente de dónde comience el cursor, mientras que ^
solo va desde su personaje hasta el primer espacio en blanco.
Al pensar en los movimientos en línea y en bloque, me ayuda imaginar que estoy presionando bien v
o V
justo antes del movimiento. Entonces imagino d^
que es equivalente a v^d
e imagino d_
que es equivalente a V_d
o V^d
. Por supuesto, también puede anular un movimiento para forzarlo a ser lineal o de carácter. Entonces, en dv_
realidad es exactamente lo mismo que d^
o v^d
, y dVw
es como lo Vwd
que es exactamente como d_
.
La razón por la cual es específicamente la línea "cuenta-1 °" es para que 1dd
(lo que realmente es d1_
) borra una línea completa, 2dd
(lo que es realmente d2_
) elimina 2 líneas enteras, 3dd
elimina 3 líneas enteras, etc.
dd
es más fácil qued_
y3yj
es más fácil que4y_
.dd
puede ser más conveniente qued_
eso, pero eso es porquedd
es solo un mapeo parad_
. Y también es útil en vimscript.gUU
? Creo que valdría la pena encontrar un ejemplo real de dónde<operator>_
se usaría.