Pour copier du texte dans le presse-papiers X dans tmux, ce que je fais actuellement est:
- passer en mode sélection avec prefix[
- commencer la sélection avec space(en utilisant
mode-keys vi
btw) - sélectionnez le texte et appuyez sur enter
- copier le tampon tmux dans le presse-papiers X en utilisant prefixctrl+c
(J'ai un mappage comme bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
J'essaie d'éliminer certaines de ces étapes en faisant un mappage pour le mode de sélection. J'ai essayé:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
ce qui me donne et erreur:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(Je n'ai pas pu copier l'erreur)
Comment puis-je réparer cela?
EDIT: J'ai réalisé que je peux sélectionner et copier dans le tampon tmux (3 premières étapes) en utilisant la souris comme une sélection régulière (bien que la mise en évidence ne dure pas, il sélectionne toujours le texte), puis utiliser la liaison suivante pour copier dans le presse-papiers x :
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(J'ai utilisé cette méthode pour copier ce texte et c'était facile;)
notez que -n
dénote "pas de préfixe" donc aucun échappement n'est nécessaire. si vous n'êtes pas dérouté par la surbrillance de disparition, cela est analogue à la copie régulière (interface utilisateur commune).
c'est le meilleur que j'ai trouvé jusqu'à présent ..
EDIT2: s'est avéré des ctrl+cchevauchements avec une chose d'interruption de processus, j'ai donc changé ctrl+alt+cpour maintenant. (n'a pas vraiment aimé)
EDIT3: tmux 1.8 ou plus de support supplémentaire pour ajouter des raccourcis clavier en mode copie alors maintenant ma première intention d'origine est possible en utilisant quelque chose comme:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
Ces deux reliures permettent de copier du texte dans le presse-papiers lorsque j'ai utilisé enterou yde terminer la copie.
Je garde toujours cette ligne au cas où je ferais la copie avec la souris et déciderais de récupérer le contenu du tampon tmux dans le presse-papiers plus tard:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
la source
stty intr=^Z
. Soyez prudent avec cette commande, il est possible de définir un caractère régulier comme caractère d'interruption (si vous le faites, utilisez ctrl-v pour le saisir jusqu'à la fixation du paramètre). Et ne vous trompez pas sur la clé utilisée (par exemple, ctrl-z est normalement la clé de suspension).^c
la touche d'interruption car je l'utilise plus souvent que la copie. J'ai également mis à jour la réponse pour refléter ma solution actuelle à ce problème.bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
direct donne:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
fonctionne très bien.Réponses:
Cette réponse ne répond pas directement à votre question sur la création d'un raccourci. Mais voici ce que je fais.
Vous pouvez suspendre temporairement la transmission de vos événements clés / souris à tmux en maintenant la touche shift. Vous pouvez donc appuyer et maintenir les raccourcis Shift et utilisateur du terminal / X pour faire la copie. Dans mon cas avec Terminator, j'appuie sur shift, surligne avec la souris ce que je veux, copie avecCtrl+Shift+C
Et si vous avez des volets divisés, vous pouvez zoomer sur le volet actuel avec la touche de bascule de zoom Prefix + zet effectuer l'opération de copie. (testé sur tmux v1.8)
la source
Cela ne répond pas directement à votre question, mais jetez un œil à tmux-yank , comme décrit dans Utiliser le presse-papiers système en mode vi-copy dans tmux et Obtenir que tmux copie un tampon dans le presse-papiers . Après l'installation,
la source