Vim的剪贴板"未命名"和"unnamedplus"设置有什么区别?

syn*_*gma 37 vim clipboard

这两个设置有什么区别?

set clipboard=unnamed
set clipboard=unnamedplus
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个才能拥有多平台.vimrc?

rom*_*inl 65

在Mac OS X和Windows,*+注册都指向系统剪贴板,以便unnamedunnamedplus具有相同的效果:无名寄存器与系统剪贴板同步.

在Linux上,你基本上有两个剪贴板:一个与其他操作系统(CtrlCCtrlV其他程序中映射到+Vim中的寄存器)几乎相同,另一个是"选择"剪贴板(映射到*Vim中的寄存器).

unnamedplus在Linux,Windows和Mac OS X上使用,您可以:

  • CtrlC在其他程序中,并在p所有三个平台上放入Vim ,
  • 抽出在了Vim yCtrlV在所有三个平台上的其他程序.

如果您还想使用Linux的"选择"剪贴板,您还需要unnamed.

这是一个跨平台的价值:

set clipboard^=unnamed,unnamedplus
Run Code Online (Sandbox Code Playgroud)

参考:

:h 'clipboard'
(and follow the tags)
Run Code Online (Sandbox Code Playgroud)

  • @ryanpcmcquen,Vim有三种类型的选项:"string","number"和"boolean".`^ =`只在"数字"选项的上下文中相乘,但`'clipboard'`是一个"字符串"选项,其中`^ =`*prepends*值,`+ =`*追加*值. (6认同)
  • 因此,对于 Neovim: `vim.opt.clipboard:append { 'unnamed', 'unnamedplus' }` (6认同)
  • 与`^ =`和`+ =`有什么区别?通过阅读vim帮助部分,我了解到`^`乘以值,而`+`则添加值,所以对我来说似乎应该使用`+`,但我不假装理解vim。 (3认同)
  • 谢谢!我采用了您的解决方案:https://github.com/ryanpcmcquen/linuxTweaks/blob/master/.vimrc (2认同)