Como substituir em várias linhas?

10

Eu gostaria de inserir uma palavra em várias linhas, existe algum comando como

:[2,3,5,7,11]s/^/word\ /g

que seria inserido wordno início da linha 2, linha 3, linha 5, linha 7 e linha 11?

Aqui, várias linhas não são contíguas.

user3813057
fonte

Respostas:

16

Realizar uma substituição em várias linhas consecutivas é bastante fácil:

:2,11s/^/word /

mas um intervalo não pode cobrir linhas não consecutivas.

Com um pouco de criatividade, porém, é inteiramente possível contornar essa "limitação".

De fato, você pode repetir a última substituição com :&ou :&&(o primeiro não preservará os sinalizadores originais, o último o fará), para que você possa encadear substituições facilmente:

2s/^/word /|3&|5&|7&|11&

Veja :help :&e role para ver :&&.

romainl
fonte