21

:echo has('clipboard')返回 1,但每当我执行"+yy""*yy"这些寄存器中似乎没有任何内容时。如果我使用常规yy复制另一行文本,然后尝试从寄存器粘贴,没有任何反应CONTROL+V。如果我尝试"+pvim 粘贴我使用常规yy命令复制的文本行。

这里发生了什么?顺便说一句,我在 FreeBSD 上。

4

6 回答 6

19

您的 vim 版本可能无法使用 X11 剪贴板集成进行编译。

在 vim 中运行 :version 命令并在输出中查找 xterm_clipboard。它将以 +(支持)或 -(不支持)符号作为前缀。

于 2019-01-19T16:26:45.073 回答
3

可能发生的另一件事是您的DISPLAY环境变量设置不正确。如果您从 tmux 或 screen 运行 vim,有时可能会发生这种情况。

尝试打开一个新终端,运行echo $DISPLAY,然后从运行 vim 的终端,离开 vim,执行export DISPLAY=:0(但将 :0 替换为其他终端的输出),然后重新进入 vim 并查看剪贴板是否可以正常工作"+p

这解决了我的问题!

于 2018-06-29T23:11:09.480 回答
2

什么对我Ubuntu 20.04有用Vim 8.1.2269

sudo apt install vim-gtk3

说明
此软件包添加了对x_term_clipboardinvim如果不存在的支持。

欲了解更多信息单击此处@blankblank 的答案

注意:重新启动 vim 以检查这是否有效。

合十礼

于 2021-04-30T20:52:21.000 回答
0

如果您将某些内容复制到剪贴板并将其粘贴到 vim 中,则可以使用"+p.

+是quoteplus,表示已CLIPBOARD记录的X 选择。:help quoteplus了解更多信息。

如果你想将 vim 中的内容复制到剪贴板并通过 将内容粘贴到另一个地方Ctrl+v,你可以这样做"+yy,这会将当前行复制到剪贴板。

关于 vim 寄存器的更多信息:

:help registers
:help quotestar
于 2013-08-22T16:59:34.310 回答
0

我也遇到了这个问题。我的情况是 DISPLAY 在 tmux 中设置不正确。我找到了一个自动更新 tmux DISPLAY的脚本。

于 2021-03-08T21:32:07.020 回答
0

我的问题是我的输入源English (US, intl., with dead keys),除了 vim 没有用 x-clipboard 编译。

我在 Windows 上没有遇到同样的问题,但在 Ubuntu 20.04 上我必须按下"<space>+y这个输入源。

编辑:

似乎我可以通过将输入源切换到English (Intl. with AltGr dead keys)

于 2022-01-02T21:49:22.607 回答