简而言之,我想要以下内容:
- y(ank) 实际上将复制的文本写入文本文件中的一行,可能在你的 .vim 目录中
- 该行以寄存器的名称为前缀,因此"qyy产生
q>my line of text
- p(ut) 从该文件获取预期结果
原因是获得更多的“系统范围” vim 缓冲区来解决这个问题:
共享 Vim Yank 注册
答案1
我也有同样的问题。我找到了以下简单的解决方案:
编辑 .vimrc 文件。添加以下行
map <C-y> <Esc>:'<,'>! cat \| tee ~/tmp/.myvimbuf<CR>
map <C-p> o<Esc>:.!cat ~/tmp/.myvimbuf<CR>
map <C-P> O<Esc>:.!cat ~/tmp/.myvimbuf<CR>
并确保目录 ~/tmp 就位。
打开两个 vim 实例。如果您现在在一个实例中突出显示一段文本并按 CTRL+y,然后在另一个实例中按 CTRL+p 或 CTRL+SHIFT+p,您应该会得到想要的结果。
显然,您可以根据自己的喜好修改组合键。
这需要cat
并且tee
;它应该在任何 Mac/Linux 机器上运行。
答案2
你真正需要的只是使用 viminfo 功能。将类似以下内容放入你的 ~/.vimrc 文件中。
set viminfo='20,\"90,h,%
然后,黄油、标记等将自动在会话之间保留。:help viminfo
有关更多信息,请参阅。