0

我想出了两种让剪贴板或多或少工作的方法,但它们都没有完全符合我的要求。我想要的是一种复制和粘贴到剪贴板的方法,但只有当我明确告诉 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, and "0+,但都无济于事。我也尝试过省略"但返回错误。

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

4

1 回答 1

3

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

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

于 2013-10-05T19:27:03.970 回答