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

bvp*_*vpx 10 vim freebsd copy

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

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

Dee*_*pta 10

什么对我Ubuntu 20.04有用Vim 8.1.2269

sudo apt install vim-gtk3
Run Code Online (Sandbox Code Playgroud)

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

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


小智 9

您的vim版本可能未与X11剪贴板集成一起编译。

在vim中,运行:version命令并在输出中查找xterm_clipboard。它的前面将带有+(支持)或-(不支持)符号。

  • 除此之外,neovim出厂时默认启用了所有功能,但是如果您没有剪贴板提供程序,它将无法使用系统剪贴板。运行`:checkhealth`会告诉您是否缺少提供程序。对我来说,安装`xclip`可以解决问题。 (2认同)

Chr*_*oba 5

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

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


sra*_*ain 0

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

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

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

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

:help registers
:help quotestar
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,当我执行 `:reg` 时,我根本看不到 `+` 和 `*` 寄存器。有什么办法可以带回来吗?不久前我的寄存器列表中确实有这些..从那时起就没有更改过我的 vim 发行版.. (4认同)
  • 当然可以,但问题是“为什么”“+yy”等不做他们应该做的事情。 (2认同)