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 ^, jy +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 vo Vjusto antes del movimiento. Entonces imagino d^que es equivalente a v^de imagino d_que es equivalente a V_do 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 dVwes como lo Vwdque 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, 3ddelimina 3 líneas enteras, etc.
ddes más fácil qued_y3yjes más fácil que4y_.ddpuede ser más conveniente qued_eso, pero eso es porqueddes 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.