所以我是 VIM 的真正新手,现在再次尝试最终达到生产力水平。
我对这个编辑器的一个大问题是,它自己使用剪贴板,我不明白为什么。
有了 VIM,我的系统上现在有 3 个剪贴板,从我的角度来看这是完全没有必要的。带有 CTRL+x、CTRL+c 和 CTRL+v 的全局剪贴板,mousebutton3 上的剪贴板,它粘贴最后突出显示的文本,现在我可以在 VIM 中使用 y 和 p 的 VIM 剪贴板。
关于这个话题有一些话题,但答案只会让我更加困惑。
那么我该如何实现,即 VIM 仅使用全局剪贴板和 mousebutton3 上的剪贴板?
有些人可能会说我应该使用 *,但这只会遍历行,然后在底部输出“搜索命中底部,继续在顶部”。也许我不明白语法,答案建议我在点击 * 之前使用不同的击键,但我不知道我可能做错了什么。
Maybe I don't understand…
是的。这似乎是你的问题。
假设您安装了正确的 Vim 并且 :echo has('clipboard')
返回 1
,您可以通过它们的关联直接访问系统的两个“剪贴板”寄存器:
- PRIMARY(鼠标中键),通过
"*
,
- CLIPBOARD(Ctrl+c、Ctrl+x、Ctrl+v),通过
"+
。
您应该按 "
,然后是 *
或 +
,然后是 y
或 p
.
如果你想在 Vim 中复制一些东西然后通过点击你的鼠标中键将它粘贴到另一个程序中,使用 *
寄存器:
"*yy
如果你在另一个程序中选择了一些东西并想把它放到 Vim 中,使用 *
寄存器:
"*p
如果你想在 Vim 中提取一些东西并用 Ctrl+v 将它粘贴到另一个程序中,使用 +
寄存器:
"+yy
如果你用 Ctrl+c 在另一个程序中复制了一些东西并想把它放到 Vim 中,使用 +
寄存器:
"+p
可以同步"*
和""
(y
和p
默认使用的寄存器)在你的 vimrc
中加入这一行:
set clipboard^=unnamed
如果要同步"+
和""
:
set clipboard^=unnamedplus
如果你想同步两者:
set clipboard^=unnamed,unnamedplus
这应该允许您在程序之间 yank/put 而不必告诉 Vim 使用什么寄存器。
引用:
:help registers
:help x11-selection
:help 'clipboard'