vim / gvim无法将X11剪贴板放入寄存器“ +”或“ *”?


15

由于标准 vino服务器缺乏安全性,我改在Linux(带有Xubuntu 14.04)盒上 使用x11vnc,在Windows端上使用SSVNC

使用vino时,从Windows到Linux的剪切和粘贴在两个方向上都是不稳定的(1),但是当它起作用时,它对每个程序都有效;我可以毫无问题地使用vim寄存器"+。我跑步(2)

autocutsel -fork 

通常情况下,“中间点击”和ctrl-c / v选项是相同的。

现在,我使用x11vnc(用:调用x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000)建立了安全的加密连接,出现了一个问题:

  1. 我可以在Windows上复制并粘贴到远程linux终端,libreoffice等中,双向都没有问题。

  2. vim,或者gvim,任何企图用粘贴"+p或者"*pE353: Nothing in register *

  3. 同样在vim或中gvim,另一种方法也起作用:如果"+yy可以,我可以将其粘贴在Windows一侧。

作为任何人对此问题有任何线索吗?奇怪的是,粘贴在我检查过的所有地方都有效,但在vim...

Package                 Installed       Previous        Now             State
=======================-===============-===============-===============-=====
vim                     2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install
vim-gnome               2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install

脚注:

(1)现在找不到错误---据报道。一段时间后它将停止工作。

(2)我尝试了有无。没有变化。


x11vnc有很多问题,与主机和客户端上的不同语言区域有关,尤其是在通过服务器上的vnc控制vmware guest虚拟机时。我终于通过在主机系统上安装nomachine服务器来“解决”它。我知道这可能不是您想到的解决方案,但是nomachine和nxclient都是安全的,非常快的,并且所有内容都通过ssh传输。
弗洛伊德

2
我不使用vnc,但是我通过以下方法解决了vim与操作系统之间剪贴板互操作性的所有问题:(1)set clipboard=unnamedplus在我使用的每个linux中使用(2)alias vim='gvim -v'在我的.bashrcs中(解决某些发行版,在不支持X剪贴板的情况下编译vim) (3)set clipboard=unnamed在windows中。希望能帮助到你。
Patryk Obara 2014年

@PatrykObara将尝试...下次我必须使用Windows PC。我现在只有Linux安装程序,没有问题...谢谢。
Rmano 2014年

Answers:


1

由于我不知道您使用的是哪个x11vnc(我有3个不同的版本,还有其他版本),因此这是解决此特定问题的教程。

首先是了解所涉及的剪贴板。在大多数情况下,其中涉及四个。(如果使用剪贴板管理工具,则可能会更多。)X11定义了三个剪贴板:主剪贴板,辅助剪贴板和剪贴板。很少使用Secondary(并且几乎肯定不是您的问题),因此我们将忽略它。使用鼠标中键粘贴(xterm等)的应用程序通常使用主剪贴板。执行Windows样式粘贴(单击编辑,单击粘贴或控制V)的应用程序有时仅使用剪贴板剪贴板。某些应用程序会同时执行这两种操作(Google Chrome从主菜单中单击鼠标中键,并从剪贴板中添加控件V)。接下来是VNC剪贴板(仅一个),还有Windows剪贴板。(如果您使用的是在X11上运行的vnc查看器,事情会变得更加复杂,但是在考虑了这一点之后才有意义。)VNC剪贴板的特殊之处在于,它可以跟踪其他剪贴板的各种更新以使它们保持最新状态。如果忽略主剪贴板,则这很简单,因为最新剪贴板已复制到所有其他剪贴板。挑战在于,主剪贴板的期望行为没有得到很好的定义。我已经看到了各种vnc实现的以下行为:

  1. 忽略主要对象,仅使用剪贴板。
  2. 忽略剪贴板,仅使用主剪贴板。
  3. 对于Windows的unix副本使用最新版本,对于Windows的unix副本使用最新副本。
  4. 尝试变得聪明:仅在使用剪贴板之前使用主文件夹,然后再使用剪贴板。
  5. 尝试变得更聪明:使用主要对象直到剪贴板被更改,然后忽略主要对象直到窗口发生更改,然后使用下一个更改的对象,在使用剪贴板后再次忽略主要对象。
  6. 尝试变得更加聪明。(我从来没有想过他们要如何处理这个问题,但通常这样做是对的)

接下来是工具。我认为有两种工具可用于调试剪贴板问题:文本编辑器(记事本对此效果很好)和xclip。Windows剪贴板查看器很好,但不是必需的。

现在执行以下步骤:从要进行故障排除的组中的每个应用程序中,选择并复制一些文本,检查所有三个可访问剪贴板的状态。(vnc剪贴板很难直接查看,也很难直接使用,因为它通常不存储数据,仅存储元数据。)回答以下问题:每个应用程序使用哪个剪贴板?他们使用什么顺序?

希望这是足够的信息,可以帮助您入门。


谢谢!不幸的是,我现在无法进行测试,我的PC几乎已离开窗户;-)。我将被迫再次使用Windows时,将尝试进行一些调查……
Rmano
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.