Bagaimana cara mengganti beberapa baris?

10

Saya ingin memasukkan kata dalam beberapa baris, apakah ada perintah seperti itu

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

yang akan disisipkan wordpada awal baris 2, baris 3, baris 5, baris 7 dan baris 11?

Di sini, banyak baris tidak bersebelahan.

pengguna3813057
sumber

Jawaban:

16

Melakukan penggantian pada beberapa baris berturut-turut cukup mudah:

:2,11s/^/word /

tetapi rentang tidak dapat mencakup garis yang tidak berurutan.

Namun, dengan sedikit kreativitas, sangat mungkin untuk mengatasi "keterbatasan" itu.

Memang, Anda dapat mengulangi substitusi terakhir dengan :&atau :&&(yang pertama tidak akan mempertahankan bendera asli, yang terakhir akan) sehingga Anda dapat rantai substitusi dengan mudah:

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

Lihat :help :&dan gulir sekitar untuk :&&.

romainl
sumber