Mam plik tekstowy, który wygląda następująco:
A.
text
text
text
A.
more text
more text
A.
more text
Chcę połączyć wszystkie linie między „znacznikami” A.
, aby wyglądało to tak:
A.texttexttext
A.more textmore text
A.more text
Jak mogę to zrobić w Vimie?
:help \@!
w Vimie, aby uzyskać więcej informacji na temat tej części. Mam nadzieję, że w przeciwnym razie jest to proste z moim wyjaśnieniem. Problem z twoim podejściem polega na tym, że jeśliA.
w tekście występuje „ ”, ale nie jako izolowana linia znacznika, zostanie on podzielony tak, jakby był pierwotnie znacznikiem. W praktyce może to nie stanowić problemu (nie wiem, jak wygląda Twój „prawdziwy” plik), ale ogólnie może powodować niepożądane zachowanie, jeśli nie jest się tego świadomym.:%s///
składni: w Vimie jest to składnia „szukaj i zamień”.:
uruchamia polecenie,%
określa cały bufor jako zakres,s
rozpoczyna podstawienie./
jest ogranicznikiem wzorca (można użyć dowolnego innego znaku, ale/
jest on „standardowy”). Pierwszy/
rozpoczyna wzorzec wyszukiwania, drugi zastępuje wzorzec, a trzeci go kończy. Dostępne są modyfikatory końcowe, aby określić rozróżnianie wielkości liter itp.\1
Reprezentuje grupę wziętą do wzorca wyszukiwania.:%s/foo/bar/
zastępujefoo
siębar
w pliku.:%s/^A\.//
. Metoda w odpowiedzi nie przechwytuje^A\.
samych wzorców (a raczej ich braku), więc nie może modyfikować tych ciągów w oczywisty sposób.Działa to również (gdy zaczyna się pierwsza linia
A.
)źródło