vim:复制到 * 寄存器中的文本消失

vim:复制到 * 寄存器中的文本消失

我遇到了一个问题,就是提取的文本unnamed无法粘贴。只有当我通过 SSH 连接到另一台机器时才会发生这种情况。两台机器都运行相同版本的 OS X (10.9.2)、Vim (7.4,使用 编译brew install vim --override-system-vim),两台机器上的输出相同:

vim --version | head -n 2
=> VIM - Vi IMproved 7.4 (2013 年 8 月 10 日,编译于 2014 年 3 月 12 日 13:11:40)
=> MacOS X (unix) 版本

:echo has("clipboard")
=> 1

:set clipboard?
=>clipboard=unnamed


在文档中,当我提取文本然后立即尝试粘贴时,我看到E353: Nothing in register *。我也尝试过"*y并收到相同的错误。当我进入插入模式并 时cmd-v,它会粘贴我在 vim 之外复制的最后一项。我尝试了"+y,然后"+p收到相同的错误(引用*),我认为这是预期的,并且cmd-v仍然没有粘贴我想要的内容。

当我通过 SSH 跨机器连接时,如何让 vim 剪贴板正常工作?

答案1

您的机器不共享公共剪贴板:复制到这里的内容不能粘贴到那里,反之亦然。

X11 转发是一种非常简单且常见的解决方案,它允许您共享剪贴板,甚至在本地运行基于 X 的远程 GUI 应用程序,但即使我经常从 Mac OS X 到 Linux 执行此操作,我也不知道它是否在两台 Mac 之间有效。我想如果两台 Mac 都运行 XQuartz,那么这是可行的,但老实说,我从未尝试过(目前也不能尝试)。

您可以尝试以下操作:

  1. 在两台 Mac 上启动 X11,
  2. 在“客户端”,使用以下命令连接到“服务器”$ ssh -X username@host

看看你是否能够从两台机器复制内容或将内容复制到两台机器。

但我认为,这样的工作流程非常脆弱,而且不必要地复杂。

相关内容