:echo has('clipboard')
返回1,但每当我执行"+yy"
或"*yy"
时,似乎没有任何内容存在于这些寄存器中。如果我使用常规yy
复制另一行文本,请尝试使用CONTROL+V
从寄存器粘贴,没有任何反应。如果我尝试"+p
vim粘贴我使用常规yy
命令复制的文本行。
这里发生了什么?顺便说一句,我在使用FreeBSD。
答案 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.04
和 Vim 8.1.2269
中对我有用的内容
sudo apt install vim-gtk3
说明
此软件包添加了对 x_term_clipboard
中的 vim
的支持(如果尚不存在)。
欲了解更多信息:Click Here、@blankblank's answer。
<块引用>注意:重新启动 vim 以检查是否有效。
纳马斯特?