Відповіді:
це можливо навіть у ванільному вімі, але застосовність залежить від вашого випадку використання, тобто. як часто вам потрібно буде це повторювати, оскільки для повторення потрібно ще кілька натискань клавіш.
використовуючи, наприклад, переміщення на 5 рядків, ви можете:
:norm 5jкурсор вниз на 5 рядків@:для повторення руху:norm означає нормальне значення, будь-який наступний рядок вважається вашим натисканням клавіш у звичайному режимі
qa(зберігайте макрос в реєстрі a, ви можете вибрати власний реєстр, наприклад qb, qc)5jq (закінчити запис макросу)@aповторити записану операцію (замінити aз ім'ям регістра ви вибрали, наприклад. @b, @c)макрос вимагає більшої духовної сили для налаштування, але це повторюється в тому сенсі, що ви можете зберігати кілька операцій в різних регістрах, не перекриваючи останні операції.
Ви можете повторити зміни за допомогою .. Рухи можна повторити за допомогою ;команди. Ця команда, здається, є новою і робить подібну річ із сценарієм repmo.vim, згаданим в інших відповідях.
Наприклад, щоб перейти до другого наступного c, натисніть 2fc. Потім, щоб зробити це знову, просто введіть ;.
Ви можете вибрати рядки, які потрібно змінити, і виконати останню звичайну команду з точки
v5j .............. visual select next 5 lines
:'<,'>norm! . normal mode execute over selection last command '.'
;не нова. Це стандартна команда vi. Vi запам'ятовує тип і цільовий характер (але не числовий аргумент) останньогоf/F/t/Tруху і;повторює його. Однак це не повторює інших рухів.