我试图映射我的F7键以执行以下操作:获取当前寄存器并将其放入一个新文件中,该文件将以拆分方式打开:
map <F7> :sp clipboard.txt<CR> <bar> :put
第一部分起作用:我在拆分视图中获得了一个名为“ clipboard.txt”的新缓冲区,但是没有放置任何文本。如果我手动在缓冲区中键入:put,寄存器将按预期放置。
如何编写此看跌期权的脚本?
答案 0 :(得分:3)
有两种解决方法,您可以在每个命令后使用<cr>
,也可以在多个命令之间使用<bar>
,最后使用最后的<cr>
。请注意,您需要在末尾使用<cr>
,否则Vim只会在命令行中键入命令并将其保留在那里,等待您按Enter。
此外,您应该使用nnoremap
,首先使映射成为非递归的(例如,如果您重新映射:
键,它将中断),其次使它在正常模式下工作,我想这是要的。
将它们放在一起:
nnoremap <F7> :split clipboard.txt<cr>:put<cr>
或者:
nnoremap <F7> :split clipboard.txt<bar>put<cr>
您可能希望通过以下方式使该映射更加健壮和有用:
_
黑洞寄存器):split
和:put
命令的输出;和结果:
nnoremap <silent> <F7> :silent split clipboard.txt<bar>silent put<bar>1delete _<cr>