Відповіді:
це можливо навіть у ванільному вімі, але застосовність залежить від вашого випадку використання, тобто. як часто вам потрібно буде це повторювати, оскільки для повторення потрібно ще кілька натискань клавіш.
використовуючи, наприклад, переміщення на 5 рядків, ви можете:
:norm 5j
курсор вниз на 5 рядків@:
для повторення руху:norm
означає нормальне значення, будь-який наступний рядок вважається вашим натисканням клавіш у звичайному режимі
qa
(зберігайте макрос в реєстрі a
, ви можете вибрати власний реєстр, наприклад qb
, qc
)5j
q
(закінчити запис макросу)@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
руху і;
повторює його. Однак це не повторює інших рухів.