0
我重新映射了一個鍵以捕獲鍵被按下,並調用一個函數,在該函數中決定調用一個動作或調用該鍵,因爲此重映射不存在。但問題是,當我重新映射密鑰時,我失去了映射到該密鑰的操作。在vim中保存以前的映射
熱我可以在vimscript中實現這個?
我重新映射了一個鍵以捕獲鍵被按下,並調用一個函數,在該函數中決定調用一個動作或調用該鍵,因爲此重映射不存在。但問題是,當我重新映射密鑰時,我失去了映射到該密鑰的操作。在vim中保存以前的映射
熱我可以在vimscript中實現這個?
您可以在函數中使用:h :normal
來重新創建您重新映射的密鑰的原始功能。例如...
nnoremap l :call MyFun()<cr>
fun! MyFun()
call inputsave()
let choice = confirm("Call fun?", "&yes\n&no", 1)
if choice == 1
call OtherFun()
else
norm! l
endif
endfun
fun! OtherFun()
echo "It worked!"
endfun
我不知道你所說的「這個重映射不存在」的意思;你試圖解決的實際問題是什麼?無論哪種方式,這聽起來像你需要[':normal!'](http://vimdoc.sourceforge.net/htmldoc/various.html#:normal),也許[':execute'](http:// vimdoc。 sourceforge.net/htmldoc/eval.html#:execute)。 –