Czy mogę powtórzyć makro za pomocą .
polecenia? Na przykład chciałbym móc pisać:
@q...
i niech zadzwoni @q
4 razy. Z domyślnym zachowaniem, to działa tylko wtedy, „q” posiada jednego polecenia, na przykład dw
, x
albo iHello<esc>
. (Ma to jednak sens, ponieważ „.” Powtarza ostatnią zmianę , a nie ostatnie naciśnięcia klawiszy / polecenie)
Chciałbym też mieć tę pracę z hrabią. Na przykład wpisując:
3@q.
będzie efektywnie taki sam, jak bieganie @q
6 razy. Jak mogę skonfigurować to zachowanie?
Enter
@@
powtarza ostatnie makro, więc jeśli pytasz o to ze względu na mapowania i takie, powinno to działać dla ciebie.Odpowiedzi:
Spróbuj. Ponownie odwzorowuje,
@
tak żeg@
(plus ruch pozorowanyl
) jest następnie używany, stając się tym samym ostatnim operatorem i podlega powtórzeniu z.
.Próbowałem poradzić sobie z tyloma przypadkami narożnymi, ile tylko mogę sobie wyobrazić. Możesz powtórzyć za
@:
pomocą.
. Liczy się do@
lub.
są zachowywane dla kolejnych pras.
.Jest to trudne i nie jestem przekonany, że coś gdzieś po drodze nie pęknie. W związku z tym nie ma żadnych gwarancji, gwarancji ani obietnic.
Osobiście nie mam nic przeciwko różnicy między drobnoziarnistymi powtórzeniami
.
ostatniej zmiany a makrami powtórzeń@@
.EDYTOWAĆ
Doszedłem do wniosku, że zaszedłem tak daleko, że równie dobrze mogę dodać dodatkowy kod, który pozwoli na naciśnięcie
.
natychmiast po nagraniu makra, aby go odtworzyć.źródło
.vimrc
).
natychmiast po nagraniu.\<plug>qstop
powinno być wcześniejq
w funkcji QStartAby powtórzyć ostatnią makra można użyć
@@
tak3@@
będzie w istocie uruchomić @q 3 razy. Jednak naciśnięcia klawiszy @ mogą być nieporęczne, więc w moim .vimrc mam linie:To pozwala mi użyć mojego klucza wiodącego (,) plus m do uruchomienia ostatniego makra. Następnie możesz poprzedzić to liczbą, aby powtórzyć makro.
Teraz
3,m
jest odpowiednikiem3@@
. Te same klucze i nie trzeba przytrzymywać klawisza Shift.EDYCJA : Po przemyśleniu tego wymyśliłem nowe makro.
nmap <leader>. @@
Działa to również wtedy, gdy poprzedza je liczba, więc3,.
teraz3@@
chciałbym zobaczyć tę pracę, abym mógł przekazać literę makra i powtórzyć to makro zamiast ostatniego makra.źródło
3@q.
uruchomić@q
6 razy. To nie robi tego.3@q.
? Wygląda na to, że równie dobrze możesz po prostu uzupełnić go rachunkiem. Zwykle ustawiam wyszukiwanie przed rozpoczęciem makra, a następnie używamn
go, aby przejść do miejsca, w którym można go odtworzyć.Możesz zarejestrować użycie makra w innym makrze i powtórzyć to.
Teraz
3@r
jest jak bieganie@q
sześć razy.źródło
Domyślnie
space
w vimie jest „przesuń w prawo o 1 znak”, który jest już objętyl
, więc zmieniłem mapowanie miejsca, aby ponownie uruchomić makro z bufora q:Aby użyć, po prostu nagraj makro za pomocą
qq
, zatrzymaj nagrywanie za pomocą,q
a następnie naciśnij,space
aby odtworzyć.źródło
Ponieważ nie używam
,
i jak proste rozwiązanie do pisania, działa to dla mnie:źródło