2013-08-18 92 views
0

我重新映射了一個鍵以捕獲鍵被按下,並調用一個函數,在該函數中決定調用一個動作或調用該鍵,因爲此重映射不存在。但問題是,當我重新映射密鑰時,我失去了映射到該密鑰的操作。在vim中保存以前的映射

熱我可以在vimscript中實現這個?

+0

我不知道你所說的「這個重映射不存在」的意思;你試圖解決的實際問題是什麼?無論哪種方式,這聽起來像你需要[':normal!'](http://vimdoc.sourceforge.net/htmldoc/various.html#:normal),也許[':execute'](http:// vimdoc。 sourceforge.net/htmldoc/eval.html#:execute)。 –

回答

1

您可以在函數中使用: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