4

我知道我可以使用录制宏q<char>并使用@<char>. 我也知道我可以使用@@.

而是@@两个完整的击键!这太多了!特别是如果我多次运行该宏。我知道,但如果我事先<num>@<char>不知道怎么办?<num>

实际上,我正在寻找的是类似于运行宏的交互式搜索和替换(请参阅Vim 中的交互式搜索/替换正则表达式? )。这可以做到吗?

4

2 回答 2

3

一键在正常模式下应用宏 a:

:nnoremap , @a

然后,当您想要应用宏时,可以使用“,”,或者当您想要跳到下一个搜索时使用“n”

以交互方式将宏应用于搜索匹配:

  1. 用“qa”定义宏
  2. 用“/”搜索
  3. 应用宏以匹配“,”
  4. 跳过与“n”的匹配
于 2017-02-02T15:38:15.553 回答
2

我有这个~/.vimrc

" <A-@>         Repeat last macro with a single key combination.
nnoremap <A-2> @@

所以,首先我像往常一样使用寄存器名称重播,例如@a。然后我重复@@. 然后我意识到我需要更多的重复(但不能使用 a [count]),所以我切换到Alt+ @@2美国英语键盘布局上)。

于 2017-02-02T17:10:34.063 回答