我遇到了一个问题,就是提取的文本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,那么这是可行的,但老实说,我从未尝试过(目前也不能尝试)。
您可以尝试以下操作:
- 在两台 Mac 上启动 X11,
- 在“客户端”,使用以下命令连接到“服务器”
$ ssh -X username@host
看看你是否能够从两台机器复制内容或将内容复制到两台机器。
但我认为,这样的工作流程非常脆弱,而且不必要地复杂。