web-dev-qa-db-fra.com

Comment copier de tmux s'exécutant dans PuTTY dans le presse-papiers de Windows

ENV :: Je lance tmux dans PuTTY, sur un ordinateur portable Windows 7. Je fais ssh aux systèmes linux tout en travaillant.

Je dois résoudre deux problèmes avec tmux, avant de l'utiliser pour tous mes besoins.

  1. Je dois copier du texte dans le bloc-notes Windows de vim ou du terminal tmux. J'ai activé le support de souris pour vim et PuTTY.

    J'ai essayé "*y et "+y mais les deux ne fonctionnent pas. Si j'utilise la capacité de copie de PuTTY, il copie également le contenu des grilles adjacentes.

  2. Je dois copier du contenu d'un fichier vim dans un volet dans un fichier vim ouvert dans un autre volet. Y at-il une astuce vim pour cela. Je ne veux pas utiliser la méthode <C-b>[ pour le faire.

Le problème 1 me hante davantage, car il existe un problème pour le problème 2.

22
Vivek Jha

PuTTY n'est qu'un émulateur de terminal; les registres Vim * et + sont concernés par la sélection X et le presse-papier; il n'y a pas de chevauchement.

PuTTY vous permet uniquement de copier le contenu du terminal sélectionné dans le presse-papier de Windows. lorsque vous exécutez tmux , cela inclura inévitablement la disposition de la fenêtre.

Vous devez passer de PuTTY à quelque chose qui permette une réelle intégration, comme le serveur Cygwin XWin , qui est un vrai serveur X qui intègre le presse-papiers X au presse-papiers Windows. Au lieu d'entrer dans la session PuTTY, vous devez ssh -X sur votre serveur et lancer Vim dans un terminal Linux, ou directement GVIM. Ensuite, yanking via "+y fonctionnera comme prévu.

Si vous souhaitez continuer à utiliser PuTTY, vous devez utiliser une solution de contournement, telle que :writele sélection dans un fichier local et son transfert à Windows via scp, par exemple.

6
Ingo Karkat

J'utilise PuTTY v0.62 et tmux v1.8. 

tmux config: mode setw -g sur la souris

Je veux copier du texte de tmux dans le presse-papiers du système, je maintiens la touche MAJ enfoncée, sélectionne le texte à l'aide de la souris, puis clique sur le bouton gauche de la souris. 

Je veux coller du texte dans tmux, appuyez sur MAJ et cliquez sur le bouton droit de la souris.

86
lslab

C'est absolument possible. Toutes les lignes de configuration ci-dessous ont été copiées à partir de machines de différents panneaux tmux vers ma machine Windows. Oui, je mets dans une machine et tmux et ssh de là à d’autres et je peux déplacer mon vim yanks vers n’importe quelle machine, y compris mon navigateur Windows.

J'exécute un serveur X sous Windows (il n'est pas nécessaire que ce soit sous Windows, mais vous en avez besoin quelque part). 

Ingrédients essentiels:

  • PuTTY 0.62 (sous Windows)
  • tmux 1.8 (sur une machine Linux)
  • xclip (sur les machines Linux)
  • MobaXterm (sous Windows pour leur x serveur)

La configuration de votre réseau peut différer un peu, en particulier sur la configuration d’affichage du serveur X, mais la voici:

tmux  

# allow mouse to select panes
setw -g mode-mouse on
set-option -g mouse-select-pane on

# allow yank into system clipboard
#bind C-y run "tmux save-buffer - | xclip -i"
bind C-y run-Shell -b "tmux show-buffer | xclip -selection clipboard -i"
# move x clipboard into tmux paste buffer
bind C-p run-Shell -b "xclip -o -selection clipboard | tmux load-buffer - ; tmux paste-buffer"

vim

" get some  autoselect interaction with the system clipboard
set guioptions=aA

MobaXterm

Je continue à le faire, mais je n’ai jamais à exécuter tmux dans un shell xterm. Assurez-vous que le Presse-papiers partagé est sélectionné dans les paramètres X11. Je suppose que xming devrait fonctionner, mais les paramètres de mes autres besoins ne semblaient jamais fonctionner. MobaXterm a d’autres avantages que j’aime bien (navigateurs, etc.).

Je suppose que je pourrais exécuter une session ssh avec tmux dans MobaXterm, mais je préfère la fenêtre PuTTY dans laquelle j'ai ma palette de couleurs solarisée

PuTTY

ssh à la machine avec tmux. À ce stade, j'ai défini la variable d'environnement DISPLAY et l'ai placée dans un fichier env provenant de bash. De cette façon, toutes les fenêtres suivantes seront configurées. Le paramétrer sur d’autres machines auxquelles j’ai recours à partir de la machine tmux est un exercice à part entière. 

Sur n'importe quelle machine qui partagera le presse-papiers, assurez-vous que vous avez le bon ensemble $DISPLAY. Vous devriez pouvoir exécuter xeyes et le voir sur votre ordinateur local. 

Tout le monde partagera le presse-papiers. vim copiera dans le presse-papiers lorsque vous tirez. Pour coller dans un autre volet tmux, utilisez la touche de liaison ctrl-p (ctrl-a ctrl-p pour moi).

Si cela ne fonctionne pas, vous pouvez toujours essayer xclip -o -selection clipboard pour voir ce qui doit être collé. vous pourrez aussi déplacer n'importe quel texte "tmux sélectionné" (souris ou bind-key [) dans le presse-papiers (et donc dans une fenêtre Windows normale) avec bind-key ctrl-y (c'est-à-dire tmux yank).

14
Phil Cooper

En supposant que le mode souris est déjà activé, ajoutez-le à votre configuration tmux et sélectionnez-le pour le copier dans votre presse-papiers.

bind -Tcopy-mode MouseDragEnd1Pane send -X copy-selection-and-cancel\; run-Shell -b "tmux show-buffer | clip"

Testé en v2.6

1
Dakusan