vim系统寄存器*和+不工作

时间:2013-08-22 15:41:26

标签: vim copy freebsd

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

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

5 个答案:

答案 0 :(得分:4)

您的vim版本可能未通过X11剪贴板集成进行编译。

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

答案 1 :(得分:1)

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

+是一个quoteplus,这意味着CLIPBOARD记录了X选择。 :help quoteplus了解更多信息。

如果您想将vim中的内容复制到剪贴板并通过Ctrl+v将内容粘贴到其他位置,则可以执行"+yy,这会将当前行复制到剪贴板。

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

:help registers
:help quotestar

答案 2 :(得分:1)

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

尝试打开一个新终端,运行echo $DISPLAY,然后从运行vim的终端退出,离开vim,执行export DISPLAY=:0(但用另一个终端的输出替换:0),然后重新-输入vim,并通过执行"+p查看剪贴板是否工作。

这解决了我的问题!

答案 3 :(得分:0)

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

答案 4 :(得分:0)

Ubuntu 20.04Vim 8.1.2269 中对我有用的内容

sudo apt install vim-gtk3

说明
此软件包添加了对 x_term_clipboard 中的 vim 的支持(如果尚不存在)。

欲了解更多信息Click Here@blankblank's answer

<块引用>

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

纳马斯特?