Powiedzmy, że miałem blok tekstu ...
Lorem ipsum
Lorem ipsum dolor
Lorem ipsum dolor sit
Lorem ipsum dolor sit amet
... i chciałem wstawić .
na końcu każdej linii. Jakie byłoby najlepsze podejście do tego?
insert-mode
visual-block
vim.ryan
źródło
źródło
W pierwszym wierszu po prostu wpisz:
4:norm A.
4
i:
utwórz zakres dla siebie, a następnienorm A.
dodaje kropkę do każdej liniiInnym rozwiązaniem dla dłuższych akapitów może być:
Vip<C-v>$A.<Esc>
Pierwszym krokiem jest wybranie akapitu, a
Vip
następnie przejście do trybu bloku wizualnego i przesunięcie kursora na koniec każdej linii,$
następnie dodanie.
do każdej linii za pomocąA.
i przejście do trybu normalnego z,<Esc>
aby zobaczyć zmianę zastosowaną do każdej linii .źródło
:A
polecenie? Nie znalazłem tego za pośrednictwem:h :A
4:norm A.
byłoby4:s/$/.
Najpierw możesz je wizualnie zaznaczyć za pomocą,
V
a następnie użyć klawiszy ruchu, aby zaznaczyć cały tekst (lub jeśli tekst był ściśle akapitem, który możesz zrobić [zaczynając od pierwszego wiersza]V}
). A potem wpisz:
. Powinno to przywołać coś:'<,'>
z wiersza poleceń.Wykonuje
normal A.
się na wybranych liniach.normal A.
wykonuje sięA.
jak naciśnięcia klawiszy w trybie normalnym. Spowoduje toA
wysunięcie znaku.
na końcu każdej z wybranych linii.źródło
Jeśli chcesz dodać kropkę na końcu wszystkich linii:
lub możesz użyć wyszukiwania i zastąpić:
% to cały plik, $ to koniec wiersza
źródło
:1,4s/$/./
który zastępuje ostatni znak kropką w wierszach od pierwszego do czwartego włącznie.Aby było trochę bardziej ogólne, możesz zarejestrować makro w jednym wierszu, a następnie odtworzyć je w każdym wierszu w wybranym wizualnie zakresie.
Zapisz makro do rejestru (rejestr q w tym przykładzie):
Następnie możesz wizualnie wybrać linie, na których chcesz operować:
Następnie odtwórz makro w każdej linii (zakres zostanie automatycznie wypełniony):
źródło