Vim perdendo a capacidade de copiar para cliente cloip sobre SSH

4

Eu configurei o vim para conseguir arrancar texto da instância do servidor do vim para a área de transferência no sistema operacional do My client (por meio da conexão SSH).
A configuração básica é

  • Lado do cliente
    • gnome-terminal
  • Serverside
    • SSH com encaminhamento de sessão X11, por exemplo %código%
      • Tmux
        • vim-gtk

versão vim em execução no servidor - ssh -Y <user>@<server> com extras necessários para copiar para a área de transferência do sistema

$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2 2014 19:40:46)
Included patches: 1-52
Modified by [email protected]
Compiled by buildd@
Huge version with GTK2 GUI.  Features included (+) or not (-):
  • Sistema operacional Ubuntu 14.04

Dentro do vim (rodando no servidor) eu posso selecionar o texto visual - então clico em ", + , y e eu terei isso seleção visual disponível na prancheta do sistema operacional do meu cliente.
Isso funciona quando eu me conecto ao servidor e inicio uma nova sessão do tmux, mas quando eu reconectar ao servidor após o SSH ter quebrado e reconectar a sessão do tmux ele pára de funcionar. Alguma idéia de por que isso poderia ser?

    
por the_velour_fog 26.12.2015 / 08:51

1 resposta

0

Esta é a minha solução (obrigado pelo ponteiro xpra). É assim:

  1. Assume o mesmo bashrc local e remoto
  2. Use o tmux-ssh para conectar-se ao site remoto. Leva argumentos normais de ssh (1) como -p e -u. Basicamente chama tmux-x-attach () no site remoto
  3. tmux-x-attach () inicia um servidor xpra se nenhum estiver em execução, em seguida, conecta-se ao servidor xpra em execução e envia para tmux-attach ()
  4. tmux-attach () também
    1. inicie uma nova sessão do tmux se não houver nenhuma
    2. anexar à instância tmux em execução (única)
    3. solicita qual das várias sessões tmux anexar a
  5. quando desanexamos, voltamos ao tmux-x-attach, que se desanexa do xpra antes que a sessão ssh termine
  6. Uma tentativa (tput init) é feita para limpar o terminal se o tmux foi desconectado de dentro, por exemplo. vim

De .bashrc

  tmux-x-attach() {
     ps -f -u $USER | grep -v grep | grep -q 'xpra start' || xpra start :9
     xpra attach :9 --opengl=no > /tmp/xpra-attach.log 2>&1 &
     DISPLAY=:9 tmux-attach "$@"
     xpra detach :9
  }

  tmux-attach() {
     case $(tmux list-sessions 2>/dev/null | wc -l) in
        0) tmux ;;
        1) tmux attach ;;
        *)
           tmux list-sessions 
           read -n 1 -p "Select command: " N < /dev/tty > /dev/tty;
           tmux attach -t $N
           ;;
     esac
  }
  tmux-ssh() { ssh "$@" -A -X -t 'PS1=tmux-ssh- ; . ~/.bashrc ; tmux-x-attach'; tput init; }
    
por 18.08.2016 / 13:10