Como posso sincronizar a área de transferência de aplicativos de terminal em um servidor sem X?

Como posso sincronizar a área de transferência de aplicativos de terminal em um servidor sem X?

Em máquinas com servidor X, usei a selectionárea de transferência para sincronizar copiar/colar entre GUI e programas de terminal. Agora tenho um servidor sem X onde gostaria de sincronizar copiar/colar em aplicativos de terminal, por exemplo, zshand vimand tmux. Posteriormente, espero sincronizar ainda mais essa área de transferência com a área de transferência do sistema do Mac que estou usando para SSH no servidor Linux.

Essa configuração é possível? Concretamente,

  • A área de transferência compartilhada do Linux sincroniza copiar/colar em aplicativos de terminal sem ter o X11 em execução?

  • Existe uma ferramenta semelhante xsele xclippara isso?

  • Melhor ainda, existe uma ferramenta como essa que funciona com e sem executar o servidor X, permitindo-me usar a mesma configuração/dotfiles para ambos os cenários?

  • Finalmente, e admito que este é um problema à parte, como essa área de transferência poderia ser sincronizada com a de um cliente SSH?

Responder1

Não existe uma área de transferência comum para aplicativos de terminal. Cada um dos tmux, zsh e vim tem sua própria área de transferência.

tmux possui um mecanismo para enviar texto copiado para o terminal externo com uma sequência de escape (a set-clipboardopção) e também para ler a área de transferência ( refresh-client -l). Apenas os terminais X suportam esse recurso e nem todos eles.

O tmux também suporta a mesma sequência de escape (OSC 52), permitindo que aplicativos dentro do tmux leiam o buffer de colagem mais recente (se set-clipboardestiver definido como on). No entanto, que eu saiba, poucos aplicativos, se houver, usam isso.

tmux também permite salvar buffers de colagem em um arquivo ou stdout com o save-buffercomando e carregá-los com o load-buffercomando. Provavelmente é mais fácil de usar que o OSC 52.

Espero que seja possível escrever scripts para zsh e vim para usar um ou outro desses recursos para definir e recuperar sua área de transferência.

Então, sim, você poderia montar algo executando tudo dentro do tmux, usando o tmux para manter a área de transferência e escrevendo alguns scripts para obter e configurá-lo no vim, zsh e assim por diante, mas acho que você precisará fazer isso sozinho, existe nenhuma solução existente.

informação relacionada