Odpowiedzi:
jest to wykonalne nawet w waniliowym vimie, ale możliwość zastosowania zależy od przypadku użycia, tj. jak często trzeba to powtarzać, ponieważ wymaga kilku kolejnych naciśnięć klawiszy, aby powtarzalność była powtarzalna.
wykorzystując przykładowo przejście w dół o 5 linii, możesz:
:norm 5j, przesunie kursor w dół o 5 linii@:aby powtórzyć ruch:norm oznacza normalny, każdy kolejny ciąg znaków jest uważany za naciśnięcia klawiszy w trybie normalnym
qa(sklep makro do rejestru a, można wybrać swój własny rejestr jak qb, qc)5jq (zakończ nagrywanie makra)@aaby powtórzyć nagraną operację (zastąp awybraną nazwą rejestru, np. @b, @c)makro wymaga więcej mocy duchowej do skonfigurowania, ale jest bardziej powtarzalne w tym sensie, że można przechowywać wiele operacji w różnych rejestrach, bez konieczności przesłonięcia ostatnich operacji.
Możesz powtarzać zmiany za pomocą .. Ruchy można powtarzać za pomocą ;polecenia. To polecenie wydaje się być nowe i działa podobnie do skryptu repmo.vim wspomnianego w innych odpowiedziach.
Na przykład, aby przejść do drugiego następnego c, naciśnij 2fc. Następnie, aby to zrobić ponownie, po prostu wpisz ;.
Możesz wybrać linie, które chcesz zmienić, i wykonać ostatnie normalne polecenie kropki
v5j .............. visual select next 5 lines
:'<,'>norm! . normal mode execute over selection last command '.'
;nie jest nowy. To standardowe polecenie vi. Vi zapamiętuje typ i znak docelowy (ale nie argument liczbowy) ostatniego ruchuf/F/t/Ti;powtarza go. Jednak nie powtarza innych ruchów.