Z pytania Jak zamienić znak na nowy wiersz w Vimie? . Musisz użyć \ r podczas zastępowania tekstu znakiem nowej linii, takim jak ten
:%s/%/\r/g
Ale zastępując znak końca wiersza i nowego wiersza, możesz to zrobić w następujący sposób:
:%s/\n/%/g
Która część podręcznika dokumentuje te zachowania i jakie jest ich uzasadnienie?
%
wyszukiwanie i wymiana?:s
zastosuje podstawienie tylko do bieżącej linii.:%s
sprawia, że adresuje cały plik. Więcej .Odpowiedzi:
Z dokumentów vim na temat wzorów :
źródło
Od http://vim.wikia.com/wiki/Search_and_replace :
źródło
:h :s%
, zwłaszcza ostatni akapit. (via:h :s
)Innym aspektem tego jest to
\0
, że tradycyjnie NULLs//\0/
oznacza „cały dopasowany wzór”. (Nawiasem mówiąc, jest to zbędne i dłuższe niż&
).\0
co znaczyNULL
, więc używasz\n
\n
co znaczy\n
, więc używasz\r
.\r
w znaczeniu\r
, ale nie wiem, kto celowo chciałby dodać ten znak.—☈
źródło
\n
ma różne znaczenia w wyszukiwaniu i zastępowaniu wzorców. Fantastyczna odpowiedź.:help NL-used-for-Nul
źródło
Przede wszystkim otwórz
:h :s
sekcję „4.2 Zastępowanie” dokumentacji dotyczącej „Zmień”. Oto, co akceptuje polecenie:Zwróć uwagę na opis
pattern
istring
Teraz już wiesz, że wzorzec wyszukiwania i wzorce zastępcze podlegają innym zasadom. Jeśli podążysz za linkiem do
|pattern|
, przejdziesz do sekcji wyjaśniającej całe wzorce wyrażeń regularnych używanych w Vimie.Tymczasem
|sub-replace-special|
przenosi Cię do podsekcji „4.2 Zastępstwo”, która zawiera wzorce zastępowania, wśród których jest\r
podziału linii / podziału.(Skrót do tej części instrukcji to
:h :s%
)źródło