在vim中使用set clipboard?

时间:2013-10-05 19:09:08

标签: ubuntu vim clipboard

我想出了两种方法让剪贴板或多或少地起作用,但它们都没有完全符合我的要求。我想要的是一种复制和粘贴到剪贴板的方法,但只有当我明确告诉vim这样做时。

默认情况下,我可以使用"*p从系统剪贴板粘贴,但是如果不设置其他选项,我找不到写入它的方法。如果我:set guioptions=a那么这将允许我使用"+yf)例如将文本拖入剪贴板。但是,我更喜欢使用相同的寄存器进行读写。据我所知,*寄存器只读取而+寄存器只写。 (并且它不会写,除非我设置guioptions=a ...它具有自动复制视觉选择文本的副作用,这不是我想要的。)

似乎更接近于我想做它的解决方案是

:set clipboard=unnamedplus

然而,问题是现在未命名的寄存器是我的剪贴板,所以每当我xdd时,我都会覆盖我的系统剪贴板。我可以通过在我想要使用它之前和之后设置和取消设置clipboard来控制它,但这不是最好的解决方案。

有没有办法可以将剪贴板设置为unnamedplus,而不是命名寄存器?我已经尝试了set clipboard="*:set clipboard="*+:set clipboard="*plus:set clipboard="0"0plus"0+,但都无济于事。我也尝试省略"但是返回了一个错误。

我正在使用Vi IMproved 7.3(包括补丁1-547;由pkg-vim-maintainers@lists.alioth.debian.org修改; 由buildd编译@)我的操作系统是Ubuntu 13.04。

1 个答案:

答案 0 :(得分:3)

你对剪贴板寄存器有几个误解。阅读:help x11-selection以了解"*"+之间的区别。

基本上,"*寄存器代表当前选择,例如用鼠标标记文本(在终端中)时。此外,"+寄存器对应于剪贴板,即您通常使用Ctrl + C和Ctrl + V访问的内容。 MS Windows只有后者,在Linux / X11上,这是两个独立的概念。也许那让你感到困惑。是的,你可以从Vim中读取和写入(假设Vim的剪贴板支持正常运行,它应该使用默认的Ubuntu软件包)。