Выполнение .
повторяет последнее изменение. Выполнение 2.
повторяет последнее изменение 2 раза. Но представьте, что я хочу повторить изменение до последнего, как это сделать в Vim?
Как повторить последнее изменение в Vim?
Ответ 1
Не думайте, что можете, см. :help .
Однако, что вы можете сделать, это записать макрос для ваших изменений, у вас есть много регистров, чтобы выбрать из {0-9a-zA-Z"}
(верхний регистр для добавления).
Затем используют, например, @u
для редактирования 1, @t
для редактирования 2 и т.д.
Отличные советы по записи из Лучшие советы VIM
" Recording (BEST TIP of ALL)
qq # record to q
your complex series of commands
q # end recording
@q to execute
@@ to Repeat
[email protected]@ to Repeat 5 times
[email protected] : Make an existing recording q recursive *N*
" editing a register/recording
"qp :display contents of register q (normal mode)
<ctrl-R>q :display contents of register q (insert mode)
" you can now see recording contents, edit as required
"qdd :put changed contacts back into q
@q :execute recording/register q
Посмотрите на них, чтобы больше советов для повторения:
:& last substitute
:%& last substitute every line
:%&gic last substitute every line confirm
g% normal mode repeat last substitute
g& last substitute on all lines
@@ last recording
@: last command-mode command
:!! last :! command
:~ last substitute
:help repeating
Ответ 2
Я написал плагин RepeatLast.vim для удовлетворения этого точного требования. Он обеспечивает привязку клавиш 5\.
.
Он позволяет автоматически записывать макросы, что может быть нежелательно для всех. Но если вы можете жить с этим, он работает в 99% случаев использования.
Версия для разработки: https://github.com/joeytwiddle/RepeatLast.vim (обратная связь!)
Предостережения: Помимо раздражающего сообщения "запись" (
:set ch=2
), 1% раз, когда он не работает отлично, связаны с:
- Трудности, которые медленно запускают событие CursorHold, не теряя при этом быстро повторяющиеся нажатия клавиш
- Нежелательная запись [Пробел] и [Enter], когда пользователь отвечает на приглашение.
Обучение вашей мышце q
для предварительной записи макросов может быть лучшим подходом в долгосрочной перспективе.; -)