2013-10-27 59 views
5

我想製作一個自定義的單鍵Vim映射,它可以用來開始將宏記錄到未命名的寄存器(q")並停止記錄宏(q)。我可以從Vim腳本函數中檢測Vim宏錄製模式,並在Vim宏錄製模式下調用此函數嗎?

我可以從Vim腳本中檢測Vim是否處於錄製模式?

如果檢測到錄製模式是可能的,如果我的功能將在錄製模式中被喚起(停止錄製),是否會有任何問題?我的意思是,函數調用是否會被記錄在宏內?

+0

嘿Vimmers,有人知道答案,或者是什麼? – Alexey

+0

你可以舉一個例子測試用例嗎?由於它只需要兩次擊鍵,爲什麼你需要一個宏? – SibiCoder

+0

@SibiCoder我想用同樣的鑰匙開始和停止錄音。 – Alexey

回答

0

您可以使用映射到q"<esc>。假設你只在正常模式下開始記錄(並且沒有設置insertmode),這將只是你想要的。

1

嗯,我不建議這樣做,因爲開始錄音只有兩個按鍵,您可以靈活地選擇一個寄存器。

這就是說,你可以這樣做。我不知道一個辦法直接 檢測記錄模式,但你可以創建一個映射,將重新映射 本身上的每個按鍵,從而開始交替和停止 記錄:

" Helper mappings 
nnoremap @{ :nmap ; @}<CR>qq 
nnoremap @} q:nmap ; @{<CR> 

" Toggle recording 
nmap ; @{ 

" Playback 
nnoremap , @q 

選擇你自己的鑰匙地圖,因爲你最適合。

此外,我不建議使用"作爲錄音寄存器:太 很容易覆蓋。