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:
g
flaga 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*
I
zamiast tego -:%norm I*
Również:
:g/$/norm A*
Również:
gg<Ctrl-v>G$A*<Esc>
g
to global
polecenie, 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 )
jj
można nacisnąć, G
aby przejść do ostatniej linii. Jest to przydatne w dużych plikach, w których naciśnięcie j
do momentu przejścia do ostatniej linii nie jest praktyczne.
Tak naprawdę nie potrzebujesz g
na 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///
,\n
odpowiada znak NULL. Ta sekcja:help sub-replace-special
jest istotna.