Edição avançada de linhas

Last updated 7 months ago

Seja o seguinte texto:

1 este é um texto novo
2 este é um texto novo
3 este é um texto novo
4 este é um texto novo
5 este é um texto novo
6 este é um texto novo
7 este é um texto novo
8 este é um texto novo
9 este é um texto novo
10 este é um texto novo

Suponha que queira-se apagar é um texto da linha 5 até o fim (linha 10). Isto pode ser feito assim:

:5,$ normal 0wd3w

Explicando o comando acima:

:5,$ .... indica o intervalo que é da linha 5 até o fim '$'
normal .. executa em modo normal
0 ....... move o cursor para o começo da linha
w ....... pula uma palavra
d3w ..... apaga 3 palavras 'w'

Obs: É claro que um comando de substituição simples

:5,$s/é um texto//g

Resolveria neste caso, mas a vantagem do método anterior é que é válido para três palavras, sejam quais forem. Também é possível empregar comandos de inserção como i ou a e retornar ao modo normal, bastando para isso usar o recurso Ctrl-v Esc, de forma a simular o acionamento da tecla Esc (saída do modo de inserção). Por exemplo, suponha agora que deseja-se mudar a frase este é um texto novo para este não é um texto velho; pode ser feito assim:

:5,$ normal 02winão ^[$ciwvelho

Decompondo o comando acima temos:

:5,$ .... indica o intervalo que é da linha 5 até o fim '$'
normal .. executa em modo normal
0 ....... move o cursor para o começo da linha
2w ...... pula duas palavras (vai para a palavra "é")
i ....... entra no modo de inserção
não .... insere a palavra "não" seguida de espaço " "
^[ ...... sai do modo de inserção (através de Ctrl-v seguido de Esc)
$ ....... vai para o fim da linha
ciw ..... apaga a última palavra ("novo") e entra em modo de inserção
velho ... insere a palavra "velho" no lugar de "novo"

A combinação Ctrl-v é utilizada para inserir caracteres de controle na sua forma literal, prevenindo-se assim a interpretação destes neste exato momento.