如何从Vim函数执行可视模式命令?

Pee*_*eja 5 vim

我有一个函数,它执行一系列命令,并确保'paste'在运行它们之前打开.我正在寻找的是类似于以下内容:

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
Run Code Online (Sandbox Code Playgroud)

但是命令"<Plug>ReplaceVisual"需要在可视模式下运行,而不是在普通模式下运行.

是否有一个命令:normal在Visual模式下运行击键?

jam*_*san 9

gv恢复最后的视觉选择.所以,类似的东西execute "normal gv" . a:command应该工作.