Chciałbym wstawić słowo w wielu wierszach, czy jest jakieś takie polecenie
:[2,3,5,7,11]s/^/word\ /g
co wstawiłoby word
na początku linii 2, linii 3, linii 5, linii 7 i linii 11?
W tym przypadku wiele linii nie jest ciągłych.
Chciałbym wstawić słowo w wielu wierszach, czy jest jakieś takie polecenie
:[2,3,5,7,11]s/^/word\ /g
co wstawiłoby word
na początku linii 2, linii 3, linii 5, linii 7 i linii 11?
W tym przypadku wiele linii nie jest ciągłych.
Odpowiedzi:
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ń :&&
.