¿Por qué es útil el comando de subrayado _?


15

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 ^?

Respuestas:


16

¡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.


1
Está bien, pero ¿lo usaría alguna vez? ddes más fácil que d_y 3yjes más fácil que 4y_.
Toothrot

55
@toothrot Si estaba creando su propio operador y quería operar en las siguientes n líneas.
DJMcMayhem

55
@ Toothrot Supongo que quiero aclararlo un poco. En la edición vim del día a día, no, en realidad no es particularmente útil. Casi nunca lo he usado tampoco. La razón por la que es útil es porque es la definición de muchos comandos útiles. ddpuede ser más conveniente que d_eso, pero eso es porque ddes solo un mapeo para d_. Y también es útil en vimscript.
DJMcMayhem

99
Algunas acciones que actúan sobre una "moción" pueden no tener otros atajos. Algo así como "gU_" pondrá todo en mayúscula en la línea actual, incluso si el cursor no está al comienzo de la línea.
bmb

1
@bmb ¿Qué pasa gUU? Creo que valdría la pena encontrar un ejemplo real de dónde <operator>_se usaría.
Hotschke
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.