Chcę dodać *na końcu każdej linii w Vimie.
Próbowałem kodu bezskutecznie
:%s/\n/*\n/g
Chcę dodać *na końcu każdej linii w Vimie.
Próbowałem kodu bezskutecznie
:%s/\n/*\n/g
Odpowiedzi:
gflaga jest niepotrzebna.
Nawet krótszy niż polecenie: search:
:%norm A*
Oto co to znaczy:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
:, spowoduje to wstępne wypełnienie polecenia, w :'<,'>które można się następnie przekształcić:'<,'>norm A*
Izamiast tego -:%norm I*
Również:
:g/$/norm A*
Również:
gg<Ctrl-v>G$A*<Esc>
gto globalpolecenie, które robi coś z każdą pasującą linią. $pasuje do każdej linii. Może to być również ^lub .*. norm wykonuje polecenia, których zwykle używasz w trybie poleceń. Tak więc A*środki dołączania *do końca linii.
Myślę, że użycie trybu blokowania wizualnego jest lepszą i bardziej wszechstronną metodą radzenia sobie z tego typu rzeczami. Oto przykład:
This is the First line.
This is the second.
The third.
Aby wstawić „Witaj świecie”. (spacja + schowek) na końcu każdej z tych linii:
Wynik to:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(przykład z Vim.Wikia.com )
jjmożna nacisnąć, Gaby przejść do ostatniej linii. Jest to przydatne w dużych plikach, w których naciśnięcie jdo momentu przejścia do ostatniej linii nie jest praktyczne.
Tak naprawdę nie potrzebujesz gna końcu. Więc staje się:
:%s/$/*
Lub jeśli chcesz tylko *na końcu, powiedz wiersze 14-18:
:14,18s/$/*
lub
:14,18norm A*
... i do dodania (dodaj początek) każdej linii za pomocą *,
%s/^/*/g
Jedną z opcji jest:
:g/$/s//*
To znajdzie każdą kotwicę końca linii i zastąpi ją *. Mówię „zamiennik”, ale w rzeczywistości jest to raczej dodatek, ponieważ kotwica jest specjalną rzeczą, a nie zwykłą postacią. Aby uzyskać więcej informacji, zobacz Moc g - Przykłady .
:% s / \ n / * \ r / g
Twój pierwszy jest poprawny gdzie indziej, ale z jakiegoś powodu Vim musi mieć inną obsługę nowej linii.
:s///,\nodpowiada znak NULL. Ta sekcja:help sub-replace-specialjest istotna.