Jak zastępować w wielu liniach?


10

Chciałbym wstawić słowo w wielu wierszach, czy jest jakieś takie polecenie

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

co wstawiłoby wordna początku linii 2, linii 3, linii 5, linii 7 i linii 11?

W tym przypadku wiele linii nie jest ciągłych.

Odpowiedzi:


16

Wykonanie podstawienia w kilku kolejnych liniach jest dość łatwe:

:2,11s/^/word /

ale zakres nie może obejmować linii nie następujących po sobie.

Jednak przy odrobinie kreatywności można całkowicie obejść to „ograniczenie”.

Rzeczywiście, możesz powtórzyć ostatnie podstawienie za pomocą :&lub :&&(pierwsze nie zachowa oryginalnych flag, drugie zrobi to), dzięki czemu możesz dość łatwo połączyć łańcuchy:

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

Zobacz :help :&i przewiń :&&.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.