如何执行在vimL函数中涉及寄存器数据的命令?
说(作为示例测试用例),我想打开一个文件,其方向字符串在寄存器z中。在正常执行期间,我可以按以下键:
:e <c-r>z<CR> # CR is "carret return", <c-r>z is "paste registry z"
在vimL中它变得复杂。我尝试了以下选项,但无法正常工作。
fun! OpenFileInBrackets()
exe 'normal! :e \<c-r>z'."\<cr>"
exe 'normal! :e <c-r>z'."\<cr>"
norm! :e <c-r>z<CR>
endfun
有哪些选择?
谢谢!
答案 0 :(得分:2)
将我的评论移至答案。
我的建议是在vim脚本内部使用函数,而不是在正常模式下使用的函数。在这种情况下,要从寄存器获取值,请使用getreg()
。
这是一个简单的例子:
function OpenRegZ()
let filename = getreg("z")
execute "edit " . fnameescape(filename)
endfunction
可以在:help function-list
上找到可用功能的列表。
编辑:根据fnameescape()
的建议添加了:help execute
。