Copia e incolla con URxvt


27

Sto usando URxvt 9.20 su debian jessie e sto cercando un modo per copiare e incollare il testo come ero abituato con il terminale gnome ( Ctrl+ Insertper copiare, Shift+ Insertper incollare).

Funziona con diverse console urxvt, ma non funziona tra es. Urxvt e iceweasel.

Ho provato secondo il manuale su archlinux , ma non funzionerà (anche se in realtà non voglio usare Shift+ Ctrl+ C/ Vvale la pena provare).

.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
! ******************

Sai che puoi copiare selezionando il testo con il mouse e incollandolo con un clic centrale, giusto? Se non lo fai, è abbastanza?
terdon

2
Il problema qui è che i due programmi utilizzano diverse selezioni X-Windows, i programmi tradizionali usano la PRIMARYselezione con Shift + Inserisci e i nuovi programmi che tentano di imitare i tasti di altri sistemi incollano la CLIPBOARDselezione per lo stesso tasto. In GTK + è diventato più difficile incollare PRIMARYsenza usare il mouse (clic centrale, come ha detto @terdon, o sinistro + clic destro, se è attiva l'emulazione del terzo pulsante). Ma, mentre questo spiega perché i programmi non passano i dati tra di loro, mi chiedo perché il suggerimento di arch wiki non abbia funzionato.
njsg,

Come hai provato i suggerimenti di ArchWIki? Se stai usando una schermata di accesso grafica per avviare X, dovrai ricaricare le risorse X usando xrdb(dovrebbe essere xrdb ~.Xresourceso qualcosa di simile). Ad ogni modo, devi anche riavviare urxvt. In alcune distribuzioni, potrebbe essere necessario installare un pacchetto separato con le estensioni perl, ma questo sembra essere incluso nel rxvt-unicodepacchetto base in debian (potrei sbagliarmi, però).
njsg,

1
@terdon grazie per il tuo commento. Selezionare con il mouse e incollare con il clic centrale funziona davvero. Purtroppo non è quello che vorrei ottenere, vorrei usare Ctrl + Inserisci / Maiusc + Inserisci come sono abituato (abitudini e mantra ci fanno lavorare in modo efficiente e veloce, non uso spesso il mouse (Uso i3wm).
Thomas John il

@njsg grazie mille per aver spiegato le differenze primarie / appunti. Ho provato l'estensione Perl menzionata in ArchWiki in "Associazioni di tasti personalizzati", non ha fatto differenza (ho commentato la parte "Disabilita estensione Perl" nel mio .Xresources prima di metterlo in pratica ovviamente). - Sì, l'ho fatto per $ xrdb -merge ~/.Xresourceprimo - Sì, ho riavviato urxvt o ho aperto una nuova finestra del terminale urxvt, che ha lo stesso effetto che ho dimenticato di menzionare un punto molto probabilmente importante: non ho installato un ambiente desktop: - I ' sto usando solo un gestore di Windows (i3wm) - Uso un gestore di accesso grafico
Thomas John,

Risposte:


16

Sfortunatamente, il sistema X Window ha diversi meccanismi di copia-incolla .

Rxvt, come la maggior parte delle applicazioni X di vecchia scuola, utilizza la selezione primaria. Generalmente, quando selezioni qualcosa con il mouse, viene automaticamente copiato nella selezione principale e quando fai clic con il pulsante centrale per incollare, che incolla la selezione primaria.

Ctrl+ Ce Ctrl+ V(o altri collegamenti chiave) nelle applicazioni che utilizzano moderni toolkit GUI, come Gnome-terminal e Firefox, copia / incolla dagli appunti.

Ci sono strumenti per facilitare il lavoro con le selezioni. In particolare, se si desidera avere un'unica selezione che viene copiata nel caso in cui si selezioni con il mouse o si preme Ctrl+ C, è possibile eseguire autocutsel (avviarlo dal proprio .xinitrco dai programmi di avvio dell'ambiente desktop), che rileva quando viene copiato qualcosa in una delle selezioni e la copia automaticamente sull'altra.


20

Per incollare il testo, in urxvt / rxvt-unicode puoi usare middle buttonper incollare la selezione PRIMARY e Alt/Meta+ middle buttonper incollare CLIPBOARD.

Per la copia, basta contrassegnare il testo nel terminale per copiarlo nella selezione PRIMARY. Tuttavia, è necessario un po 'di lavoro per copiare la selezione CLIPBOARD. Ho combinato le informazioni dalla pagina Archlinux che hai collegato con gli script inclusi in rxvt-unicode-9.19 e ho finito con uno script come questo: https://gist.github.com/xkr47/98224ed6b0860cb55ec0 . Permette di usare Ctrl+ Inserto Ctrl+ Shift+ c`per copiare il testo attualmente selezionato su CLIPBOARD.

Spero che sia di aiuto.

Per la cronaca, inoltre, non eseguo un ambiente desktop; usando Sawfish come window manager.

Suggerimento : è possibile monitorare gli Appunti in un terminale utilizzando il programma "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

o usando il programma "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

Argomento secondario: Informazioni su come funzionano le selezioni PRIMARY e CLIPBOARD in Emacs: emacswiki.org/emacs/CopyAndPaste
Jonas Berlin,

Alt / Meta + pulsante centrale funziona per me in Debian
Jing

Questa è la risposta corretta
Winny,

15

Esistono meccanismi integrati per la copia / incolla da / verso PRIMARY(viene utilizzato quando l'utente seleziona alcuni dati) e CLIPBOARD(viene utilizzato quando l'utente seleziona alcuni dati e richiede esplicitamente che vengano "copiati" negli Appunti, ad esempio invocando "Copia" nel menu "Modifica" di un'applicazione). Ulteriori informazioni sui diversi appunti in X .

Per CLIPBOARDbuffer è CTRL+META+C(che è CTRL+ALT+Cper la tastiera standard del PC) per la copia e CTRL+META+V( CTRL+ALT+V) per incollare.

Citazione da urxvt man :

LA SELEZIONE: SELEZIONE E PASSAGGIO DEL TESTO

Il comportamento della selezione del testo e del meccanismo di inserimento / incollaggio è simile a xterm (1).

Selezione :

Fai clic con il pulsante sinistro del mouse all'inizio della regione, trascina fino alla fine della regione e rilascia; Fare clic con il tasto destro per estendere l'area contrassegnata; Doppio clic sinistro per selezionare una parola; Fai clic triplo sinistro per selezionare l'intera riga logica (che può estendersi su più righe dello schermo), a meno che non venga modificata dalle parole chiave tripleclick.

L'avvio di una selezione premendo il tasto Meta (o i tasti Meta + Ctrl) (Compila: fronzoli) creerà una selezione rettangolare anziché una normale. In questa modalità, ogni riga selezionata diventa la propria riga nella selezione e gli spazi bianchi finali vengono visivamente sottolineati e rimossi dalla selezione.

Incollare :

Premendo e rilasciando il pulsante centrale del mouse in una finestra di urxvt, il valore della selezione PRIMARY (o CLIPBOARD con il modificatore Meta) viene inserito come se fosse stato digitato sulla tastiera.

Premendo Shift-Insert si inserisce anche il valore della selezione PRIMARY.

rxvt-unicode fornisce anche i collegamenti Ctrl-Meta-c e per interagire con la selezione CLIPBOARD. La prima associazione fa sì che il valore della selezione interna venga copiato nella selezione CLIPBOARD, mentre la seconda associazione fa sì che il valore della selezione CLIPBOARD venga inserito.


Perché non penso mai che le soluzioni siano nella pagina man? Ora tutto è chiaro per me! Grazie!
Enrico Maria De Angelis,

1
A proposito, ho continuato a dimenticare quale tra la selezione primaria e gli Appunti viene incollato quando seleziono qualcosa prima di fare clic con il tasto destro e incollare. Ora è chiaro: primaPRIMARY .
Enrico Maria De Angelis,

12

Puoi fare in modo che urxvt sia copiato sia in Primario che negli Appunti con l'estensione perl di selezione negli appunti. Questo li mantiene sincronizzati, quindi copi solo una volta in urxvt e dovrebbe funzionare anche in applicazioni che usano entrambi.

URxvt.perl-ext-common: selection-to-clipboard

2
Posso cambiare shorcut per questa estensione? Non mi piace l'impostazione predefinita ctrl-alt-c / v. Vorrei avere ctrl-shift-c / v.
Trismegistos,

3
@Trismegistos, dai un'occhiata qui
Coder
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.