2017-02-02 22 views
1

我知道我可以錄製宏與q<char>@<char>運行它們。我也知道,我可以@@運行上次使用的宏。一鍵VIM宏/搜索和運行宏交互

@@是整整兩個按鍵!這太多了!特別是如果我運行這個宏很多次。我知道<num>@<char>,但如果我不事先知道<num>什麼?

我在找的東西,實際上就像是一個運行宏的交互式搜索和替換(請參閱Interactive search/replace regex in Vim?)。這可以做到嗎?

回答

2

應用宏在正常模式下一個按鍵:

:nnoremap , @a 

然後,您可以使用「」當你要應用宏,或‘N’當你想跳到下一個搜索發生

要交互式應用宏搜索匹配:

  1. 定義宏與 「QA」
  2. 搜索以 「/」
  3. 適用宏,以配合「」
  4. 跳過匹配帶‘N’
1

我有這個在我~/.vimrc

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

所以,首先我重播像往常一樣與寄存器名,例如@a。然後我重複與@@。然後我意識到我需要幾個重複(但不能使用[count]),所以我切換到替代 + @@在US-英語鍵盤佈局上的2以上)。