В Vim, с .
Я могу повторить последнюю команду нормального режима; например:
dd.
удаляет строку дважды.
Но если я наберу
5j.
курсор не перемещается на 10 строк вниз. Как мне повторить последнюю команду нормального режима, особенно ход?
В Vim, с .
Я могу повторить последнюю команду нормального режима; например:
dd.
удаляет строку дважды.
Но если я наберу
5j.
курсор не перемещается на 10 строк вниз. Как мне повторить последнюю команду нормального режима, особенно ход?
К сожалению, vim
не делает этого. Лучшее, что вы можете сделать, это установить плагин repmo.vim , который повторяет команды перемещения, которые имеют количество.
это выполнимо даже в vanilla vim, но применимость зависит от вашего варианта использования, т.е. как часто вам нужно будет повторять это, так как для его повторения требуется еще несколько нажатий клавиш.
используя, например, перемещение вниз на 5 строк, вы можете сделать:
:norm 5j
, он переместит курсор вниз на 5 строк@:
чтобы повторить движение:norm
обозначает normal, любая следующая строка рассматривается как нажатия клавиш в нормальном режиме
qa
(сохранить макрос в регистр a
, вы можете выбрать свой собственный регистр, как qb
, qc
)5j
q
(закончить запись макроса)@a
повторить ваши записанные операции (замените с именем регистра вы выбрали, например. a
@b
макрос требует больше духовной силы для настройки, но он более повторяем в том смысле, что вы можете хранить несколько операций в разных регистрах без переопределения последними операциями.
На самом деле .
повторяет последнее изменение, а не последнюю команду нормального режима. Как сказал Пол, вам понадобится плагин, который позволит вам повторять движения.
Смотрите " :help .
"
Вы можете повторить изменения с .
, Движения могут повторяться с помощью ;
команда. Эта команда кажется новой и выполняет те же действия, что и сценарий repmo.vim, упомянутый в других ответах.
Например, чтобы перейти ко второму следующему c
, нажмите 2fc
. Затем, чтобы сделать это снова, просто введите ;
,
Вы можете выбрать строки, которые вы хотите изменить, и выполнить последнюю команду нормальной точки
v5j .............. visual select next 5 lines
:'<,'>norm! . normal mode execute over selection last command '.'