Executar comando normal acima do intervalo


7

Para um arquivo parecido com este:

   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

Estou tentando remover os espaços e números iniciais das 10 primeiras linhas, então eu terminaria com

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 que "remover duas palavras" :d2wfunciona para uma única linha, mas não para um intervalo :1,10d2w?

NOTA:

O problema em si foi resolvido devido ao formato fixo, usando :1,10s/.\{8\}//, portanto, trata-se mais de entender como usar intervalos com:dNw


2
Também: :1,10s/\v^(\s|\d)*/(remover qualquer número de espaços ou dígitos no início das primeiras 10 linhas)
VanLaser

Respostas:


16

Você pode fazer isso com o comando normal:

:1,10normal d2w

Isso ocorre porque o doperador não aceita um alcance, mas apenas um movimento:

:h d

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

Como alternativa, você pode selecionar seu texto no modo visual e pode:

:'<,'>normal d2w

desculpe por perguntar explicitamente: :normalpermitirá executar o comando como se eu o digitasse ao navegar com o cursor?
Fiximan 19/08/2015

11
:normalpermite executar um comando como foi digitado no modo normal (quando você navega no cursor com hjkl). Veja::h :normal
nobe4 19/08/2015

11
Os dois pontos à frente do normal após o intervalo são redundantes.
FDinoff
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.