linux - VIM 使用系统剪贴板

标签 linux vim

<分区>

所以我是 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),通过 "+

您应该按 ",然后是 *+,然后是 yp.

如果你想在 Vim 中复制一些东西然后通过点击你的鼠标中键将它粘贴到另一个程序中,使用 * 寄存器:

"*yy

如果你在另一个程序中选择了一些东西并想把它放到 Vim 中,使用 * 寄存器:

"*p

如果你想在 Vim 中提取一些东西并用 Ctrl+v 将它粘贴到另一个程序中,使用 + 寄存器:

"+yy

如果你用 Ctrl+c 在另一个程序中复制了一些东西并想把它放到 Vim 中,使用 + 寄存器:

"+p

可以同步"*""(yp默认使用的寄存器)在你的 vimrc 中加入这一行:

set clipboard^=unnamed

如果要同步"+"":

set clipboard^=unnamedplus

如果你想同步两者:

set clipboard^=unnamed,unnamedplus

这应该允许您在程序之间 yank/put 而不必告诉 Vim 使用什么寄存器。

引用:

:help registers
:help x11-selection
:help 'clipboard'

关于linux - VIM 使用系统剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086958/

相关文章:

java - 重新启动游戏服务器后的 Ghost Java 进程

linux - 如何同时 grep 多行(另一个命令的输出)?

linux - Windows CE 与嵌入式 Linux

vim - 在 :wq - vimscript? 上执行命令的 autocmd 事件

vim - 如何在 Vim 中导航多个 ctags 匹配项?

Vim:为什么用 $ 表示行尾?

java - 让我的演示 Java 库/框架在 Linux 上运行 30 天后停止工作的最佳策略是什么?

linux - 如何在 Docker 容器内的 httpd alpine 中使用 https 运行本地主机?

vim - GVIM可以有背景图片吗?

vim - 为什么 Vim 不能正确缩进长 C 风格的注释?