2011-02-22 66 views
4

我有一個函數需要一串命令來執行,並確保'paste'在運行之前處於打開狀態。我正在尋找的是類似於如下:如何從Vim函數執行Visual模式命令?

vmap <silent> <C-K> :<C-U>call InPasteMode("<Plug>ReplaceVisual")<CR> 
function! InPasteMode(command) 
    let oldpaste = &l:paste 
    try 
    set paste 
    execute "normal" a:command 
    finally 
    let &l:paste = oldpaste 
    endtry 
endfunction 

但該命令,"<Plug>ReplaceVisual",需要在Visual模式,而不是正常模式下運行。

是否有像:normal這樣的命令在Visual模式下運行按鍵?

回答

8

gv恢復最後的視覺選擇。所以,像execute "normal gv" . a:command應該工作。

+0

+1,我不知道'gv'。 – 2011-02-22 22:35:48