command-line – Ejecute el comando normal sobre el rango

Pregunta:

Para un archivo con este aspecto:

   2  AD,42.546245,1.601554,Andorra,376
   3  AE,23.424076,53.847818,United Arab Emirates,971
   4  AF,33.93911,67.709953,Afghanistan,93
   5  AG,17.060816,-61.796428,Antigua and Barbuda,1

Estoy tratando de eliminar los espacios y números iniciales de las primeras 10 líneas, por lo que terminaría con

AD,42.546245,1.601554,Andorra,376
AE,23.424076,53.847818,United Arab Emirates,971
AF,33.93911,67.709953,Afghanistan,93
AG,17.060816,-61.796428,Antigua and Barbuda,1

¿Por qué "eliminar dos palabras" :d2w funciona para una sola línea, pero no para un rango :1,10d2w ?

NOTA:

El problema en sí se resuelve debido al formato fijo, usando :1,10s/.\{8\}// , por lo que se trata más de comprender cómo usar rangos con :dNw

Respuesta:

Puedes hacer esto con el comando normal:

:1,10normal d2w

Esto se debe a que el operador d no acepta un rango, sino solo un movimiento:

:h d

["x]d{motion}           Delete text that {motion} moves over [into register x].

Alternativamente, puede seleccionar su texto en modo visual y puede hacer:

:'<,'>normal d2w

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım