https://stackoverflow.com/questions/ask
從正常模式下的第一個字符,在qaqqaf/[email protected]@a
鍵入清除所有的斜槓。
- QAQ清除寄存器
- QA開始記錄到
- F/X刪除下一個正斜槓
- @a重新運行宏
- q結束記錄
但在運行normal qaqqaf/[email protected]@a
後停止 - 它似乎在遞歸調用保釋。如果您嘗試使用映射命令,則會發生同樣的情況。
我的語法有什麼問題嗎?或者是不可能用normal
記錄一個遞歸宏?
注:我知道這是可以寫一個遞歸宏與let
。我想知道,如果這是寫了遞歸宏無需手動記錄的唯一途徑:
let @a = "f/[email protected]"
normal @a
(我問,因爲這個答案:Remove everything except regex match in Vim)
Vim可以在寄存器宏執行任何更改的功能。因此,無論如何,將命令放入寄存器都是一種方式,就像在文本中一樣。我相信'讓'是做這個映射的最好方法。 – 2011-01-07 23:58:58
對,但是有可能用'normal' **來記錄一個遞歸宏**嗎? – idbrii 2011-01-09 03:21:02
似乎'正常'不能很好地處理遞歸宏。我似乎無法得到一個適當的記錄。但是,您可以像這樣一起使用'execute'和'feedkeys()':'exe feedkeys(「qaqqar_l @ aq @ a」,'t')'來記錄和執行宏。 – 2011-01-11 21:33:50