Copier et coller avec URxvt

27

J'utilise URxvt 9.20 sur Debian Jessie et je cherche un moyen de copier et coller du texte comme je l'étais avec le gnome-terminal ( Ctrl+ Insertpour copier, Shift+ Insertpour coller).

Il fonctionne dans différentes consoles urxvt, mais ne fonctionne pas entre par exemple urxvt et iceweasel.

J'ai essayé selon le manuel sur archlinux , mais cela ne fonctionnera pas (même si je ne veux pas utiliser Shift+ Ctrl+ C/ Vça valait le coup).

.Xresources:

! ******************
! urxvt config
! ******************

! Disable Perl extension
! If you do not use the Perl extension features, you can improve the security
! and speed by disabling Perl extensions completely. 
URxvt.perl-ext:
URxvt.perl-ext-common:

! Font spacing
! By default the distance between characters can feel too wide. It's controlled
! by this entry: 
! URxvt.letterSpace: -1

! -- Fonts -- !
URxvt.font:xft:Monospace:pixelsize=13
URxvt.boldfont:xft:Monospace-Bold:pixelsize=13
!URxvt*font:  -xos4-terminus-medium-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:pixelsize:12
!URxvt*boldFont:  -xos4-terminus-bold-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:bold:pixelsize:12
!URxvt*italicFont:  xft:Bitstream Vera Sans Mono:italic:autohint=true:pixelsize=12
!URxvt*boldItalicFont:  xft:Bitstream Vera Sans Mono:bold:italic:autohint=true:pixelsize=12

! Disable scrollbar
!URxvt*scrollBar: false

! Scrollbar style - rxvt (default), plain (most compact), next, or xterm
URxvt.scrollstyle: plain

! Background color
!URxvt*background: black
URxvt*background: #1B1B1B

! Font color
!URxvt*foreground: white
URxvt*foreground: #00FF00

! Other colors
URxvt*color0: black
!URxvt*color1: red3
URxvt*color1: #CD0000
URxvt*color2: green3
!URxvt*color3: yellow3
URxvt*color3: #C4A000
URxvt*color4: blue2
!URxvt*color4: #3465A4
URxvt*color5: magenta3
URxvt*color6: cyan3
URxvt*color7: gray90
URxvt*color8: grey50
URxvt*color9: red
URxvt*color10: green
URxvt*color11: yellow
!URxvt*color12: blue
URxvt*color12: #3465A4
URxvt*color13: magenta
URxvt*color14: cyan
URxvt*color15: white
! ******************
! /urxvt config
! ******************
Thomas John
la source
Vous savez que vous pouvez copier en sélectionnant du texte avec votre souris et coller en cliquant avec le bouton central, non? Si ce n'est pas le cas, est-ce suffisant?
terdon
2
Le problème ici est que les deux programmes utilisent des sélections X-Windows différentes, les programmes traditionnels utilisent la PRIMARYsélection avec Maj + Insertion et de nouveaux programmes qui tentent d'imiter les raccourcis clavier d'autres systèmes collent la CLIPBOARDsélection pour le même raccourci clavier. Dans GTK +, il est devenu plus difficile de coller PRIMARYsans utiliser la souris (clic du milieu, comme @terdon l'a dit, ou clic gauche + droit, si l'émulation du troisième bouton est activée). Mais, bien que cela explique pourquoi les programmes ne transmettent pas les données entre eux, je me demande pourquoi la suggestion du wiki arch n'a pas fonctionné.
njsg
Comment avez-vous essayé les suggestions d'ArchWIki? Si vous utilisez un écran de connexion graphique pour démarrer X, vous devrez recharger les ressources X en utilisant xrdb(il devrait être xrdb ~.Xresourcesou quelque chose de similaire). Dans tous les cas, vous devez également redémarrer urxvt. Dans certaines distributions, vous devrez peut-être installer un paquet distinct avec les extensions perl, mais cela semble être inclus dans le rxvt-unicodepaquet de base dans debian (cependant, je peux me tromper).
njsg
1
@terdon merci pour votre commentaire. La sélection avec la souris et le collage avec le clic du milieu fonctionnent en effet. Hélas, ce n'est pas ce que j'aimerais atteindre, j'aimerais utiliser Ctrl + Insert / Shift + Insert comme je suis habitué (les habitudes et les mantras nous font travailler efficacement et rapidement, je n'utilise pas souvent la souris (J'utilise i3wm).)
Thomas John
@njsg remercie beaucoup d'avoir expliqué les différences principales / presse-papiers. J'ai essayé l'extension Perl mentionnée dans l'ArchWiki dans "Liaisons de touches personnalisées", cela n'a pas fait de différence (j'ai commenté la partie "Désactiver l'extension Perl" dans mon .Xresources avant de l'utiliser bien sûr). - Oui, je l'ai fait en $ xrdb -merge ~/.Xresourcepremier - Oui, j'ai redémarré urxvt ou ouvert une nouvelle fenêtre de terminal urxvt, ce qui a le même effet que j'ai oublié de mentionner un point très probablement important: Je n'ai pas installé un environnement de bureau: - Je ' Je n'utilise qu'un gestionnaire Windows (i3wm) - J'utilise un gestionnaire de connexion graphique
Thomas John

Réponses:

16

Malheureusement, le système X Window possède plusieurs mécanismes différents de copier-coller .

Rxvt, comme la plupart des applications X à l'ancienne, utilise la sélection principale. Généralement, lorsque vous sélectionnez quelque chose avec la souris, il est automatiquement copié dans la sélection principale et lorsque vous cliquez avec le bouton central pour coller, cela colle la sélection principale.

Ctrl+ Cet Ctrl+ V(ou d'autres raccourcis clavier) dans les applications utilisant des boîtes à outils graphiques modernes, telles que Gnome-terminal et Firefox, copiez / collez à partir du presse-papiers.

Il existe des outils pour faciliter le travail avec les sélections. En particulier, si vous souhaitez simplement avoir une seule sélection copiée, que vous sélectionniez avec la souris ou appuyez sur Ctrl+ C, vous pouvez exécuter l' autocutsel (démarrer à partir de votre .xinitrcou à partir des programmes de démarrage de votre environnement de bureau), qui détecte quand quelque chose est copié dans l'une des sélections et la copie automatiquement dans l'autre.

Gilles 'SO- arrête d'être méchant'
la source
20

Pour coller du texte, dans urxvt / rxvt-unicode, vous pouvez utiliser middle buttonpour coller la sélection PRIMAIRE et Alt/Meta+ middle buttonpour coller CLIPBOARD.

Pour la copie, il suffit de marquer le texte dans le terminal pour le copier dans la sélection PRIMAIRE. Un certain travail est cependant nécessaire pour la copie dans la sélection CLIPBOARD. J'ai combiné les informations de la page Archlinux que vous avez liées avec les scripts inclus dans rxvt-unicode-9.19 et je me suis retrouvé avec un script comme celui-ci: https://gist.github.com/xkr47/98224ed6b0860cb55ec0 . Il permet d'utiliser Ctrl+ Insertou Ctrl+ Shift+ c`pour copier le texte actuellement sélectionné sur CLIPBOARD.

J'espère que cela t'aides.

Pour mémoire, je n'exécute pas non plus un environnement de bureau; en utilisant Sawfish comme gestionnaire de fenêtres.

Astuce : Vous pouvez surveiller le presse-papiers dans un terminal en utilisant le programme "xclip":

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xclip -o -sel c ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -o -sel p ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

ou en utilisant le programme "xsel":

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xsel -b -o ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -p -o ; echo ; echo -e '\033[m--------' ; sleep 1 ; done
Jonas Berlin
la source
Sujet secondaire: Informations sur le fonctionnement des sélections PRIMARY et CLIPBOARD dans Emacs: emacswiki.org/emacs/CopyAndPaste
Jonas Berlin
Le bouton Alt / Meta + du milieu fonctionne pour moi dans Debian
Jing
Ceci est la bonne réponse.
Winny
15

Il existe des mécanismes intégrés pour copier / coller vers / depuis PRIMARY(est utilisé lorsque l'utilisateur sélectionne certaines données) et CLIPBOARD(est utilisé lorsque l'utilisateur sélectionne certaines données et demande explicitement qu'elles soient «copiées» dans le presse-papiers, par exemple en appelant "Copier" sous le menu "Edition" d'une application). En savoir plus sur les différents blocs - notes dans X .

Pour le CLIPBOARDtampon, c'est CTRL+META+C(qui est CTRL+ALT+Cpour le clavier PC standard) pour la copie et CTRL+META+V( CTRL+ALT+V) pour le collage.

Citation de l' homme urxvt :

LA SÉLECTION: SÉLECTIONNER ET COLLER UN TEXTE

Le comportement du mécanisme de sélection et d'insertion / collage de texte est similaire à xterm (1).

Sélection :

Faites un clic gauche au début de la région, faites-le glisser jusqu'à la fin de la région et relâchez; Cliquez avec le bouton droit pour étendre la région marquée; Double-cliquez à gauche pour sélectionner un mot; Faites un triple clic gauche pour sélectionner la ligne logique entière (qui peut s'étendre sur plusieurs lignes d'écran), à moins qu'elle ne soit modifiée par des mots-clés triples de ressources.

Commencer une sélection en appuyant sur la touche Meta (ou les touches Meta + Ctrl) (Compiler: fioritures) créera une sélection rectangulaire au lieu d'une normale. Dans ce mode, chaque ligne sélectionnée devient sa propre ligne dans la sélection et les espaces de fin sont visuellement soulignés et supprimés de la sélection.

Collage :

En appuyant et en relâchant le bouton central de la souris dans une fenêtre urxvt, la valeur de la sélection PRIMARY (ou CLIPBOARD avec le modificateur Meta) est insérée comme si elle avait été tapée au clavier.

En appuyant sur Maj-Insérer, la valeur de la sélection PRIMAIRE est également insérée.

rxvt-unicode fournit également les liaisons Ctrl-Meta-c et permet d'interagir avec la sélection CLIPBOARD. La première liaison entraîne la copie de la valeur de la sélection interne dans la sélection CLIPBOARD, tandis que la deuxième liaison entraîne l'insertion de la valeur de la sélection CLIPBOARD.

petRUShka
la source
Pourquoi ne pense-t-on jamais que les solutions sont dans la page de manuel? Maintenant, tout est clair pour moi! Merci!
Enrico Maria De Angelis
1
Soit dit en passant, j'ai toujours oublié celui entre la sélection principale et le presse-papiers lorsque je sélectionne quelque chose avant de cliquer avec le bouton droit et de le coller. Maintenant c'est clair: avantPRIMAIRE .
Enrico Maria De Angelis
12

Vous pouvez faire une copie urxvt vers le primaire et le presse-papiers avec l'extension perl sélection-vers-presse-papiers. Cela les maintient synchronisés, vous n'avez donc qu'à copier une fois dans urxvt et cela devrait fonctionner dans les applications qui utilisent l'une ou l'autre.

URxvt.perl-ext-common: selection-to-clipboard
degenerateJoe
la source
2
Puis-je changer le raccourci pour cette extension? Je n'aime pas ctrl-alt-c / v par défaut. Je voudrais avoir ctrl-shift-c / v.
Trismegistos
3
@Trismegistos, jetez un œil ici
Coder