如何将当前寄存器的内容放入vimscript中的新缓冲区?

如何将当前寄存器的内容放入vimscript中的新缓冲区?,vim,Vim,我正在尝试映射我的F7密钥以执行以下操作:获取当前寄存器并将其放入一个新文件中,我将以拆分方式打开该文件: map <F7> :sp clipboard.txt<CR> <bar> :put map:sp clipboard.txt:put 第一件工作:我在分割视图中得到了一个名为“clipboard.txt”的新缓冲区,但是没有文本被放入。如果我手动键入:放入该缓冲区,寄存器将按预期放入 如何编写该put的脚本?有两种方法,可以在每个命令之后使用,也可

我正在尝试映射我的F7密钥以执行以下操作:获取当前寄存器并将其放入一个新文件中,我将以拆分方式打开该文件:

 map <F7> :sp clipboard.txt<CR> <bar> :put
map:sp clipboard.txt:put
第一件工作:我在分割视图中得到了一个名为“clipboard.txt”的新缓冲区,但是没有文本被放入。如果我手动键入:放入该缓冲区,寄存器将按预期放入


如何编写该put的脚本?

有两种方法,可以在每个命令之后使用
,也可以在多个命令之间使用
,最后使用一个
。请注意,最后需要一个
,否则Vim只需在命令行中键入命令并将其保留在那里,等待您按enter键

另外,您应该使用
nnoremap
,首先使映射非递归(例如,如果重新映射
键,它将中断),然后使其在正常模式下工作,我认为这是预期的

综合起来:

nnoremap <F7> :split clipboard.txt<cr>:put<cr>
顺序错误:
:命令在
之后完成:您需要
映射:sp clipboard.txt:put
nnoremap <F7> :split clipboard.txt<bar>put<cr>
nnoremap <silent> <F7> :silent split clipboard.txt<bar>silent put<bar>1delete _<cr>