单键vim宏/搜索和运行宏交互式

时间:2017-02-02 14:58:09

标签: vim vim-macros

我知道我可以使用q<char>录制宏并使用@<char>运行它们。我也知道我可以使用@@运行最后使用的宏。

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

我真正想要的是像运行宏的交互式搜索和替换(请参阅Interactive search/replace regex in Vim?)。可以这样做吗?

2 个答案:

答案 0 :(得分:2)

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

:nnoremap , @a

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

以交互方式应用宏来搜索匹配项:

  1. 使用“qa”
  2. 定义宏
  3. 使用“/”
  4. 搜索
  5. 应用宏以匹配“,”
  6. 与“n”跳过匹配

答案 1 :(得分:2)

我在~/.vimrc

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

所以,首先我像往常一样重播注册名称,例如@a。然后我用@@重复一遍。然后我意识到我需要多次重复(但不能使用[count]),所以我切换到 Alt + @ @高于{美国英语键盘布局上的{1}}。