Odpowiedzi:
:%s/\n\(\(A\.$\)\@!.*\)/\1/
Zamień dopasowanie wzoru:
grupa zawierająca
A.
po którym bezpośrednio następuje koniec liniiz:
i rób to globalnie.
: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śli A.
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ępuje foo
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.
)
:v/^A/-1j!