vim / gvim no puede poner el portapapeles X11 en los registros "+ o" *?

15

Debido a la falta de seguridad con el servidor de vino estándar , cambié para usar x11vnc en mi caja de Linux (con Xubuntu 14.04) y SSVNC en el lado de Windows.

Con vino, cortar y pegar desde Windows a Linux y Windows, en las dos direcciones, era escamoso (1) pero cuando funcionaba, funcionaba para todos los programas; Podría usar el vimregistro "+sin problema. Yo corro (2)

autocutsel -fork 

normalmente para que las selecciones "clic central" y ctrl-c / v sean las mismas.

Ahora que lo utilice x11vnc (llamada con: x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000) tener una conexión segura, encriptada, surgió un problema:

  1. Puedo copiar en Windows y pegar en los terminales remotos de Linux, libreoffice, etc. sin ningún problema, en ambas direcciones.

  2. En vim, o gvim, cualquier intento de pegar con "+po "*pdiceE353: Nothing in register *

  3. De nuevo en vimo gvim, al revés funciona: si "+yypuedo pegarlo en el lado de Windows.

Como alguien alguna pista sobre este problema? Lo extraño es que pegar funciona en todos los lugares que verifiqué pero en 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

Notas al pie:

(1) no puedo encontrar el error ahora --- se informa. Deja de funcionar después de un tiempo.

(2) Lo intenté con y sin. Sin cambios.

Rmano
fuente
Tuve muchos problemas con x11vnc relacionados con diferentes idiomas locales en el host y el cliente, especialmente al controlar invitados vmware a través de vnc en el servidor. Finalmente lo 'resolví' instalando un servidor nomachine en el sistema host. Sé que probablemente esta no sea la solución que tenga en mente, pero nomachine y nxclient son seguros, muy rápidos y todo se canaliza a través de ssh.
Floyd
2
No uso vnc, pero solucioné todos mis problemas con la interoperabilidad del portapapeles entre vim y OS al: (1) usar set clipboard=unnamedplusen todos los linux que uso (2) alias vim='gvim -v'en mi .bashrcs (para solucionar ciertas distribuciones compilando vim sin el soporte del portapapeles X) (3) set clipboard=unnameden ventanas. Espero eso ayude.
Patryk Obara
@PatrykObara lo intentará ... la próxima vez que tenga que usar una PC con Windows. Ahora solo tengo una configuración de Linux y no tengo problemas ... Gracias.
Rmano

Respuestas:

1

Como no sé qué x11vnc está utilizando (tengo tres versiones diferentes, hay otras), este es un tutorial para solucionar este problema específico.

Primero es entender los portapapeles involucrados. En la mayoría de los casos, cuatro de ellos están involucrados. (Es posible obtener más si utiliza las herramientas de administración del portapapeles). X11 define tres portapapeles: primario, secundario y portapapeles. El secundario rara vez se usa (y casi seguro que no es su problema), por lo que lo ignoraremos. Las aplicaciones que usan el botón central para pegar (xterm, et al) normalmente usan el portapapeles primario. Las aplicaciones que pegan al estilo de Windows (haga clic en editar, haga clic en pegar o controle V) a veces usan solo el portapapeles del portapapeles. Algunas aplicaciones hacen ambas cosas (Google Chrome pega desde la primaria con un clic central y desde el portapapeles con un control V) El siguiente es el portapapeles VNC (solo uno) y está el portapapeles de Windows. (Si está utilizando un visor vnc que se ejecuta en X11, las cosas se vuelven más complicadas, pero eso tendrá sentido después de pensar en esto. ) el portapapeles VNC es especial, ya que realiza un seguimiento de varias actualizaciones de los otros portapapeles para mantenerlos actualizados. Si ignora el portapapeles primario, esto es bastante simple ya que el portapapeles actualizado más recientemente se copia a todos los demás. El desafío es que el comportamiento deseado del portapapeles primario no está bien definido. He visto los siguientes comportamientos de varias implementaciones de vnc:

  1. Ignora el primario, usa solo el portapapeles.
  2. Ignora el portapapeles, usa solo el primario.
  3. Use el más reciente para copias de Unix a Windows, copie a ambos para copias de Windows a Unix.
  4. Intenta ser inteligente: usa el primario solo hasta que se use el portapapeles y luego solo usa el portapapeles.
  5. Intente ser más inteligente: use el primario hasta que se cambie el portapapeles, luego ignore el primario hasta que haya un cambio desde Windows, luego use el siguiente cambio, ignorando nuevamente el primario después del uso del portapapeles.
  6. Intenta ser aún más inteligente. (Nunca me di cuenta de lo que estaban tratando de hacer con este, pero generalmente hizo lo correcto)

Lo siguiente son las herramientas. Hay dos herramientas que considero esenciales para depurar problemas del portapapeles: un editor de texto (el bloc de notas funciona bien para esto) y xclip. Un visor de portapapeles de Windows es agradable pero no esencial.

Ahora el procedimiento: desde cada aplicación en el grupo que está solucionando problemas, seleccione y copie un texto que verifique el estado de los tres portapapeles accesibles. (El portapapeles vnc es muy difícil de ver directamente y no es directamente útil, ya que normalmente no almacena los datos, solo los metadatos). Responda estas preguntas: ¿qué portapapeles usa cada aplicación? ¿en qué orden se usan?

Esperemos que esta sea suficiente información para comenzar.

hildred
fuente
¡Gracias! Desafortunadamente no puedo probar en este momento, casi he eliminado las ventanas de mis PC ;-). Intentaré una investigación tan pronto como me
vean