Exclui o espaço em branco de um conjunto de linhas no editor Vim

10

Eu tenho um texto como o seguinte em um arquivo:

  sample text
    some random text
            even more random text
text with no indent
 worst indention

Preciso excluir o espaço vazio antes de cada uma das linhas. Por uma linha, o que eu faço é 0dw

Eu posso repetir o mesmo comando usando. mas navegando manualmente para as próximas linhas.

Mas existe uma maneira de aplicar '0dw' àqueles blocos de linhas?

Suponho que haja uma maneira de usar macros, mas não as usei antes. Mas estou disposto a aprendê-las, se não houver outra escolha.

    
por saiy2k 20.01.2012 / 08:53

4 respostas

9
:%s/^\s\+
" Same thing (:le = :left = left-align given range):
:%le

Saiba mais aqui em link

Se você quiser fazer isso para um determinado intervalo de linhas:

:19,25s/^\s\+//

BTW, a melhor maneira de começar a aprender o vim é executar o comando vimtutor , ele ensinará como usar o Vim no editor do Vim.

    
por 20.01.2012 / 09:11
7

Uma maneira alternativa de fazer isso é usar as ferramentas de recuo do VIM (geralmente ligadas a / > ). Primeiro você precisa de alguma maneira para indicar quais linhas serão afetadas. Você pode usar o modo de seleção visual ou qualquer outro meio de especificar um intervalo de linhas a ser afetado e, em seguida, usar um número ou níveis de indentação arbitrariamente altos para remover. 9< geralmente faz o truque para remover pelo menos 9 níveis de recuo possível (separadores / espaços) da (s) linha (s) atual (is).

    
por 20.01.2012 / 13:18
3

Eu tenho uma abordagem para fazer isso nas etapas simples a seguir:

1. press 'v' to go to visual selection mode
2. select the lines you want to affect
3. :'<,'>normal 0dw

Explicação do terceiro passo:

0 navega para o início da linha.

dw exclui a palavra (espaços vazios).

normal aplica o comando 0dw .

'<,'> repete o normal para todas as linhas selecionadas no modo visual.

    
por 21.01.2012 / 07:25
1

ctrl+v permite que você faça algo parecido com o que deseja, mas não exatamente. Você pode selecionar um bloco visual e aplicar um comando ao lote.

    
por 20.01.2012 / 09:03