防止Vim在退出时清除剪贴板

Tha*_*nos 46 vim clipboard

当我从终端打开Vim时,将一些文本复制到系统剪贴板,然后退出Vim,系统剪贴板将被清除.

如何将复制的文本保留在剪贴板中?

Mat*_*att 42

超级用户合成答案,只需将以下内容添加到您的.vimrc

autocmd VimLeave * call system("xsel -ib", getreg('+'))
Run Code Online (Sandbox Code Playgroud)

  • 感谢Matt和ZyX的工作.它需要安装'xsel'.我使用了getreg('+'). (3认同)
  • 它并不完全符合TS的要求:它将默认寄存器的值保存到剪贴板,而不是剪贴板寄存器.你应该使用`getreg('+')`. (2认同)

Sol*_*oli 10

为GDE安装Parcellite或glipper,为KDE安装klipper.

重新启动计算机或手动运行它.

请参阅:https://wiki.ubuntu.com/ClipboardPersistence

  • 我不明白为什么人们会否决这个答案。它表明问题不仅仅在于 Vim 的行为方式 - 它影响了许多应用程序。该链接显示了如何修复所有受影响的应用程序的问题。你还能想要什么? (3认同)

Mat*_*aun 6

根据Matt的回答,以下用法xclip代替xsel:

autocmd VimLeave * call system('echo ' . shellescape(getreg('+')) . 
            \ ' | xclip -selection clipboard')
Run Code Online (Sandbox Code Playgroud)

  • 哦,编辑另一个答案后才看到这个答案。尽管如此,使用以下命令“xclip”解决方案可能不太容易出错:“system("xclip -selection Clipboard -i", getreg('+'))` (3认同)