【问题标题】:vim system register * and + not workingvim 系统寄存器 * 和 + 不起作用
【发布时间】:2013-08-25 10:58:56
【问题描述】:

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

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

【问题讨论】:

  • Ctrl-V 不是 vim 中的paste 操作。它打开视觉选择(块)。你可以试试"+Y,然后打开其他编辑器,比如gedit,如果你有,然后Ctrl-V。您应该会在剪贴板中看到您复制到 vim + 的内容。
  • 我读到如果您处于插入模式,则 ctrl-V 会粘贴到 vim 中。无论如何,"+Y" 根本不起作用……当我输入 :reg 时,它甚至不会显示为列出的寄存器,"+P"+p 什么也不做。
  • 您应该使用"+Y 而不是"+Y" 并在正常模式下进行。顺便说一句,你能告诉我如何在 vim 帮助中找到 ctrl-V is paste in vim if you're in insert mode. 吗?
  • 我的意思是"+Y,我是在正常模式下进行的。第二个引号是错字。它不起作用,我不知道为什么。
  • @bvpx 您是否启用了+xterm_clipboard:echo has('xterm_clipboard')。我不确定这是做什么的......

标签: vim copy freebsd


【解决方案1】:

如果你有复制一些东西到剪贴板并粘贴到 vim 中,你可以使用"+p

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

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

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

:help registers
:help quotestar

【讨论】:

  • 当然,但问题是为什么"+yy等而不做他们应该做的。
  • "+yy 会将当前行拉到剪贴板,包括换行符。只是为了确保,Shift 和'(在输入键的左侧),Shift 和键=(在退格键的左侧),y,y。
  • "+yy 似乎没有将当前行复制到剪贴板,因为当我执行 "+p 时,它只会粘贴未命名寄存器中的任何内容。
  • @bvpx 如果我正确阅读了这些 cmets... 您正试图通过 ssh 访问系统剪贴板?这不会很容易工作,因为 vim 没有意识到它在 ssh 会话中运行,因此它将内容放在您被 ssh 进入的计算机的系统剪贴板中。 (您可以尝试superuser.com/questions/326871/… 设置 X 转发,以便 vim 在 ssh 会话中实现它。)
  • 就我而言,当我执行:reg 时,我根本看不到+* 注册。有什么办法把它带回来?不久前,我的注册列表中确实有这些.. 从那时起,我没有改变我的 vim 发行版..
【解决方案2】:

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

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

这解决了我的问题!

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 除此之外,neovim 默认启用所有功能,但如果您没有剪贴板提供程序,则无法使用系统剪贴板。运行 :checkhealth 会告诉您是否缺少提供者。对我来说,安装 xclip 解决了这个问题。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      Ubuntu 20.04Vim 8.1.2269 对我有用

      sudo apt install vim-gtk3
      

      说明
      这个包增加了对vimx_term_clipboard 的支持(如果还没有的话)。

      更多信息Click Here@blankblank's answer

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

      合十礼?

      【讨论】:

        【解决方案6】:

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

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

        编辑:

        看来我可以通过将输入源切换到English (Intl. with AltGr dead keys)来解决这个问题

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-24
          • 1970-01-01
          • 1970-01-01
          • 2013-01-06
          • 1970-01-01
          • 2016-08-02
          相关资源
          最近更新 更多