一键vim宏/交互搜索-运行-宏
One-key vim macro / search-and-run-macro interactively
我知道我可以用 q<char>
录制宏,用 @<char>
运行 录制宏。我也知道我可以 运行 最后使用的宏 @@
.
但是@@
是两次完整的击键!那太多了!特别是如果我运行宁那个宏很多次。我知道 <num>@<char>
但如果我事先不知道 <num>
怎么办?
实际上,我正在寻找的是类似于 运行 宏的交互式搜索和替换(请参阅 Interactive search/replace regex in Vim?)。这能做到吗?
在普通模式下一键应用宏a:
:nnoremap , @a
您可以在要应用宏时使用“,”,或者在您想跳到下一个搜索事件时使用 "n"
以交互方式将宏应用于搜索匹配项:
- 用"qa"
定义宏
- 用“/”搜索
- 应用宏来匹配“,”
- 跳过与 "n"
的匹配
我的~/.vimrc
中有这个:
" <A-@> Repeat last macro with a single key combination.
nnoremap <A-2> @@
所以,首先我像往常一样用注册名重播,例如@a
。然后我用 @@
重复。然后我意识到我需要再重复几次(但不能使用 [count]
),所以我切换到 Alt + @ (@
在 US-English 键盘布局上的 2
上方。
我知道我可以用 q<char>
录制宏,用 @<char>
运行 录制宏。我也知道我可以 运行 最后使用的宏 @@
.
但是@@
是两次完整的击键!那太多了!特别是如果我运行宁那个宏很多次。我知道 <num>@<char>
但如果我事先不知道 <num>
怎么办?
实际上,我正在寻找的是类似于 运行 宏的交互式搜索和替换(请参阅 Interactive search/replace regex in Vim?)。这能做到吗?
在普通模式下一键应用宏a:
:nnoremap , @a
您可以在要应用宏时使用“,”,或者在您想跳到下一个搜索事件时使用 "n"
以交互方式将宏应用于搜索匹配项:
- 用"qa" 定义宏
- 用“/”搜索
- 应用宏来匹配“,”
- 跳过与 "n" 的匹配
我的~/.vimrc
中有这个:
" <A-@> Repeat last macro with a single key combination.
nnoremap <A-2> @@
所以,首先我像往常一样用注册名重播,例如@a
。然后我用 @@
重复。然后我意识到我需要再重复几次(但不能使用 [count]
),所以我切换到 Alt + @ (@
在 US-English 键盘布局上的 2
上方。