2011-02-04 32 views
5

Como usuario novato de vim, utilicé d[count]<Enter> para eliminar líneas.
Me sorprendió que siempre haya recuento + 1 líneas borradas.
Si quisiera eliminar las líneas 2, Mecanografié d1, 3 líneas tomaron d2, ...Diferencia entre: d [count] y d [count]

finalmente se tomó el tiempo tratando de entender por qué y parece que debería haber estado usando :d<count>.

que esto plantea para la pregunta, sin embargo, ¿por qué es :d1<Enter> <>d1<Enter>

Respuesta

11

d<count> en el modo normal no hacer nada, ya que el recuento no es seguido por un movimiento. Entonces, presumiblemente, ha estado presionando d<count><Enter>, en cuyo caso el movimiento asociado con d es <count><Enter>, que mueve <count> líneas hacia abajo. Como <Enter> es un movimiento en línea, el d también será en línea, borrando todas las líneas del actual a la línea <count> hacia abajo, inclusive.

El comando actualmente es <count>dd.

+0

+1 Supongo que es correcto. Gracias. –

+1

buena explicación, estaba intentando 'd1' repetidamente en modo normal sin éxito ... No sabía sobre' dd' Yo estaba usando 'd j' o' d k' siempre faltando el conteo por uno .. Lo gracioso de Vim es que siempre hay múltiples formas de lograr el mismo objetivo. –

4

d{motion} borra el texto que se desplaza {motion}. Cuando escribe 3<ENTER>, el cursor se mueve 3 líneas por debajo de la actual y por lo tanto d3<ENTER> elimina esa área.

:d[count] simplemente elimina [count] líneas.

La diferencia es que {motion} no es lo mismo que count. Para solucionar esto, puede usar el modo visual y seleccionar lo que va a eliminar y luego simplemente presione d.

+0

+1 tiene mucho sentido ahora. –