vim / gvim falha ao colocar a área de transferência X11 nos registradores “+ ou” *?

14

Devido à falta de segurança com o servidor vino padrão, mudei para uso x11vnc na minha caixa linux (com o Xubuntu 14.04) e SSVNC no lado do Windows.

Com o vino, cortar e colar do Windows para o Linux e Windows, nas duas direções, era escamoso (1), mas quando funcionava, funcionava para cada programa; Eu poderia usar o vim register "+ sem problema. Eu corro (2)

autocutsel -fork 

normalmente para que as seleções de "clique do meio" e ctrl-c / v sejam as mesmas.

Agora que eu uso x11vnc (chamado com: x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000 ) para ter uma conexão segura e criptografada, surgiu um problema:

  1. Eu posso copiar no windows e colar nos terminais Linux remotos, libreoffice etc. sem nenhum problema, nos dois sentidos.

  2. Em vim ou gvim , qualquer tentativa de colar com "+p ou "*p diz E353: Nothing in register *

  3. Novamente em vim ou gvim , o contrário ocorre: se eu "+yy , posso colar a coisa no lado do Windows.

Como alguém tem alguma pista sobre esse problema? O estranho é que o colar funciona em todos os lugares que eu verifiquei, mas em 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 de rodapé:

(1) não consegue encontrar o bug agora --- é reportado. Ele pára de funcionar depois de um tempo.

(2) Eu tentei com e sem. Sem alterações.

    
por Rmano 07.05.2014 / 17:29

1 resposta

1

Como eu não sei qual x11vnc você está usando (tenho três versões diferentes, existem outras) este é um tutorial para solucionar esse problema específico.

Primeiro, é entender as pranchetas envolvidas. Na maioria dos casos, há quatro deles envolvidos. (Mais é possível se você usar ferramentas de gerenciamento da área de transferência.) O X11 define três pranchetas: Primária, Secundária e Área de Transferência. O secundário raramente é usado (e quase certamente não é seu problema), então vamos ignorá-lo. Aplicativos que usam o clique do meio para colar (xterm, et al) normalmente usam a área de transferência primária. Aplicativos que fazem uma pasta de estilo do Windows (clique em editar, colar ou controlar V) às vezes usam apenas a área de transferência da área de transferência. Alguns aplicativos fazem as duas coisas (pastas do Google Chrome da primária com um clique do meio e da área de transferência com um controle V). Em seguida é a área de transferência VNC (apenas um) e há a área de transferência do Windows. (Se você estiver usando um visualizador vnc em execução no X11, as coisas ficam mais complicadas, mas isso fará sentido depois de pensar sobre isso.) A área de transferência VNC é especial, pois mantém várias atualizações das outras pranchetas para mantê-las encontro. Se você ignorar a área de transferência principal, isso é bastante simples, pois a área de transferência atualizada mais recentemente é copiada para todas as outras. O desafio é que o comportamento desejado da área de transferência primária não está bem definido. Eu vi os seguintes comportamentos de várias implementações vnc:

  1. Ignore o primário, use apenas a área de transferência.
  2. Ignore a área de transferência, use apenas o principal.
  3. Use o mais recente para unix para cópias do Windows, copie para ambos para o Windows para unix cópias.
  4. Tente ser inteligente: use o principal somente até que a área de transferência seja usada e use apenas a área de transferência.
  5. Tente ser mais inteligente: use o principal até que a área de transferência seja alterada, depois ignore o principal até que haja uma alteração das janelas e use o próximo alterado, ignorando novamente o principal após o uso da área de transferência.
  6. Tente ser ainda mais inteligente. (Eu nunca descobri o que eles estavam tentando fazer com este, mas geralmente fazia a coisa certa)

Em seguida, estão as ferramentas. Existem duas ferramentas que considero essenciais para depurar problemas da área de transferência: um editor de texto (o bloco de notas funciona bem para isso) e o xclip. Um visualizador da área de transferência do Windows é bom, mas não essencial.

Agora, o procedimento: A partir de cada aplicativo do grupo que você está solucionando, selecione e copie algum texto, verificando o status de todas as três pranchetas acessíveis. (A área de transferência do vnc é muito difícil de visualizar diretamente e não é diretamente útil, pois normalmente não armazena os dados, apenas os metadados.) Responda a estas perguntas: qual área de transferência cada aplicativo usa? que ordem eles são usados?

Espero que isso seja informação suficiente para você começar.

    
por 16.03.2015 / 20:34