Chcę uruchomić makro, które właśnie nagrałem w rejestrze, x
w każdym wierszu otwartego bufora, od kursora do końca bufora w programie vim. Jak mogę to zrobić?
Wiem, że mogę odtworzyć makro n razy:
15@x
... lub po prostu przytrzymaj, @
aż dojdę do ostatniej linii, ale chcę po prostu nacisnąć kilka klawiszy i skończyć z tym.
Z góry dziękuję.
Odpowiedzi:
Osobiście zrobiłbym to
Edycja: zmieniony rejestr na podany.
źródło
Możesz zrobić (w trybie poleceń)
źródło
zrobić makro rekurencyjne:
dawny:
UPCASE pierwsze słowo z bieżącej linii do końca pliku pojedynczym @a. Ale upewnij się, że „rejestr jest pusty:
źródło
%:normal
podejście, ponieważ uwzględnia wszelkie przesunięcia linii w makrze, więc jest przydatne, gdy linie nie mają identycznej formy. Łatwiej jest mi utworzyć makro „a” w celu zdefiniowania akcji, a następnie zlecić makro „b” wykonanie rekurencyjnego bitu, tj. Qb @ a @ bq.ctrl-c
przestać, jeśli tak się stanie!:set nowrapscan
powoduje niepowodzenie i zatrzymuje się po osiągnięciu końca pliku.qaq
przed makra:qaqqa0gUwj@aq
. Dodatkowo, jeśli zapomnisz umieścić@q
na końcu, zawsze możesz zrobić,qA
aby rozpocząć dołączanie rejestru, a następnie to zrobić@q
. Zwykle nagrywam do reg q z jakiegoś powodu, ponieważ jest to łatwe (szczególnie w przypadku makr rekurencyjnych) i zwykle kończy się na wykonywaniuqqqqqgUiwj@qq
dwóch makr. Pierwsze trzyq
s wyczyść reg q, drugie dwieq
s rozpoczynają nagrywanie. Zobacz vim.wikia.com/wiki/Record_a_recursive_macroa
rejestr, można byqaq
999999@x
chyba że masz bardzo duży bufor ...źródło
%:normal @x
lub1,$:normal @x
?99999@x
wydaje mi się, że to naturalna rzecz, na którą się spieszysz :)Z wiki vim, skrócona wersja: qqqqq, aby nagrać makro @qq, aby zakończyć nagrywanie @q, aby je wykonać (i będzie działać do końca pliku)
źródło