Kopieren und Einfügen mit URxvt

27

Ich benutze URxvt 9.20 auf Debian Jessie und suche nach einer Möglichkeit, Text zu kopieren und einzufügen, wie ich es mit dem Gnome-Terminal gewohnt war ( Ctrl+ Insertzum Kopieren, Shift+ Insertzum Einfügen).

Es funktioniert innerhalb verschiedener urxvt-Konsolen, es funktioniert jedoch nicht zwischen zB urxvt und iceweasel.

Ich habe versucht , nach dem Handbuch auf archlinux , aber es wird nicht funktionieren (obwohl ich will eigentlich nicht verwenden Shift+ Ctrl+ C/ Ves war ein Versuch wert).

.Xressourcen:

! ******************
! 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
quelle
Sie wissen, dass Sie kopieren können, indem Sie Text mit der Maus auswählen und mit der mittleren Maustaste einfügen, oder? Wenn nicht, ist das genug?
Terdon
2
Das Problem hierbei ist, dass die beiden Programme unterschiedliche X-Windows-Auswahlen verwenden, herkömmliche Programme die PRIMARYAuswahl mit Umschalt + Einfügen verwenden und neue Programme versuchen, Tastenkombinationen von anderen Systemen nachzuahmen, indem sie die CLIPBOARDAuswahl für dieselbe Tastenkombination einfügen . In GTK + ist das Einfügen PRIMARYohne Mausklick schwieriger geworden (mittlerer Klick, wie @terdon sagte, oder linker + rechter Klick, wenn die Emulation der dritten Schaltfläche aktiviert ist). Obwohl dies erklärt, warum die Programme die Daten nicht zwischen ihnen austauschen, frage ich mich, warum der Wiki-Vorschlag für Arch nicht funktioniert hat.
NJSG
Wie haben Sie die Vorschläge von ArchWIki ausprobiert? Wenn Sie zum Starten von X einen grafischen Anmeldebildschirm verwenden, müssen Sie die X-Ressourcen mithilfe von neu laden xrdb(dies sollte der Fall sein xrdb ~.Xresourcesoder ähnliches). In jedem Fall müssen Sie auch neu starten urxvt. In einigen Distributionen müssen Sie möglicherweise ein separates Paket mit den Perl-Erweiterungen installieren, aber dies scheint im rxvt-unicodeBasispaket von Debian enthalten zu sein (ich kann mich jedoch irren).
NJSG
1
@ terdon danke für deinen Kommentar. Das Auswählen mit der Maus und Einfügen mit dem mittleren Klick funktioniert tatsächlich. Leider ist es nicht das, was ich erreichen möchte. Ich würde gerne Strg + Einfügen / Umschalt + Einfügen verwenden, wie ich es gewohnt bin. (Gewohnheiten und Mantras sorgen dafür, dass wir effizient und schnell arbeiten. Ich benutze die Maus nicht oft (Ich benutze i3wm.)
Thomas John
@njsg dankt vielmals für die Erklärung der Unterschiede zwischen Primär- und Zwischenablage. Ich habe die Perl-Erweiterung ausprobiert, die im ArchWiki unter "Benutzerdefinierte Tastenkombinationen" erwähnt wurde. Das hat keinen Unterschied gemacht. - Ja, das habe ich $ xrdb -merge ~/.Xresourcezuerst getan. - Ja, ich habe urxvt neu gestartet oder ein neues urxvt-Terminalfenster geöffnet. Dies hat den gleichen Effekt, den ich vergessen habe, einen höchstwahrscheinlichen wichtigen Punkt zu erwähnen: Ich habe keine Desktop-Umgebung installiert. Ich verwende nur einen Windows-Manager (i3wm) - Ich verwende einen grafischen Login-Manager
Thomas John

Antworten:

16

Leider verfügt das X-Window-System über verschiedene Copy-Paste-Mechanismen .

Rxvt verwendet wie die meisten älteren X-Anwendungen die primäre Auswahl. Wenn Sie etwas mit der Maus auswählen, wird es im Allgemeinen automatisch in die primäre Auswahl kopiert. Wenn Sie mit der mittleren Maustaste zum Einfügen klicken, wird die primäre Auswahl eingefügt.

Ctrl+ Cund Ctrl+ V(oder andere Tastenkombinationen) in Anwendungen, die moderne GUI-Toolkits wie Gnome-Terminal und Firefox verwenden, können aus der Zwischenablage kopiert / eingefügt werden.

Es gibt Tools, die das Arbeiten mit den Auswahlen erleichtern. Insbesondere, wenn Sie nur eine einzige Auswahl haben möchten, die kopiert wird, unabhängig davon, ob Sie mit der Maus auswählen oder Ctrl+ drücken C, können Sie Autocutsel ausführen (starten Sie es über .xinitrcdas Startprogramm Ihrer Desktop-Umgebung), das erkennt, wann etwas kopiert wird eine der Auswahlen und kopiert sie automatisch in die andere.

Gilles 'SO - hör auf böse zu sein'
quelle
20

Zum Einfügen von Text können Sie in urxvt / rxvt-unicode middle buttonPRIMARY-Auswahl und Alt/Meta+ middle buttonCLIPBOARD einfügen.

Wenn Sie den Text im Terminal markieren, wird er zum Kopieren in die PRIMARY-Auswahl kopiert. Zum Kopieren in die CLIPBOARD-Auswahl sind jedoch einige Arbeiten erforderlich. Ich habe die Informationen von der Archlinux-Seite, die Sie verlinkt haben, mit den in rxvt-unicode-9.19 enthaltenen Skripten kombiniert und am Ende ein Skript wie das folgende erstellt: https://gist.github.com/xkr47/98224ed6b0860cb55ec0 . Hiermit können Sie mit Ctrl+ Insertoder Ctrl+ Shift+ c`den aktuell ausgewählten Text in CLIPBOARD kopieren.

Hoffe das hilft.

Ich habe auch keine Desktop-Umgebung. mit Sawfish als Fenstermanager.

Tipp : Sie können die Zwischenablage in einem Terminal mit dem Programm "xclip" überwachen:

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

oder mit dem "xsel" Programm:

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
quelle
Nebenthema: Informationen
Jonas Berlin
Alt / Meta + mittlere Taste funktioniert bei mir in Debian
Jing
Das ist die richtige Antwort.
Winny
15

Es gibt integrierte Mechanismen zum Kopieren / Einfügen in / aus PRIMARY(wird verwendet, wenn der Benutzer einige Daten auswählt) und CLIPBOARD(wird verwendet, wenn der Benutzer einige Daten auswählt und ausdrücklich anfordert, sie in die Zwischenablage zu "kopieren", z. B. durch Aufrufen "Kopieren" im Menü "Bearbeiten" einer Anwendung). Mehr über verschiedene Zwischenablagen in X .

Für CLIPBOARDBuffer ist es CTRL+META+C(das ist CTRL+ALT+Cfür Standard-PC-Tastatur) zum Kopieren und CTRL+META+V( CTRL+ALT+V) zum Einfügen.

Zitat von urxvt man :

DIE AUSWAHL: AUSWAHL UND EINFÜGEN VON TEXT

Das Verhalten der Textauswahl und des Einfüge- / Einfügemechanismus ist ähnlich wie bei xterm (1).

Auswahl :

Klicken Sie mit der linken Maustaste auf den Beginn der Region, ziehen Sie ihn an das Ende der Region und lassen Sie ihn los. Klicken Sie mit der rechten Maustaste, um den markierten Bereich zu erweitern. Doppelklicken Sie mit der linken Maustaste, um ein Wort auszuwählen. Klicken Sie dreimal mit der linken Maustaste, um die gesamte logische Zeile (die sich über mehrere Bildschirmzeilen erstrecken kann) auszuwählen, sofern sie nicht durch dreimaliges Klicken auf eine Ressource geändert wurde.

Durch Starten einer Auswahl bei gedrückter Meta-Taste (oder Meta + Strg-Taste) (Kompilieren: Schnickschnack) wird anstelle einer normalen Auswahl eine rechteckige Auswahl erstellt. In diesem Modus wird jede ausgewählte Zeile zu einer eigenen Zeile in der Auswahl, und nachfolgende Leerzeichen werden optisch unterstrichen und aus der Auswahl entfernt.

Einfügen :

Durch Drücken und Loslassen der mittleren Maustaste in einem urxvt-Fenster wird der Wert der PRIMARY-Auswahl (oder CLIPBOARD mit dem Meta-Modifikator) so eingefügt, als ob er auf der Tastatur eingegeben worden wäre.

Durch Drücken von Umschalt-Einfügen wird auch der Wert der PRIMARY-Auswahl eingefügt.

rxvt-unicode bietet auch die Bindungen Ctrl-Meta-c und zur Interaktion mit der CLIPBOARD-Auswahl. Die erste Bindung bewirkt, dass der Wert der internen Auswahl in die CLIPBOARD-Auswahl kopiert wird, während die zweite Bindung bewirkt, dass der Wert der CLIPBOARD-Auswahl eingefügt wird.

petRUShka
quelle
Warum denke ich nie, dass Lösungen in der Manpage sind? Jetzt ist mir alles klar! Vielen Dank!
Enrico Maria De Angelis
1
Übrigens habe ich immer wieder vergessen, an welcher Stelle zwischen Primärauswahl und Zwischenablage eingefügt wird, wenn ich vor dem Klicken mit der rechten Maustaste und dem Einfügen etwas auswähle . Jetzt ist es klar: vorPRIMARY .
Enrico Maria De Angelis
12

Mit der Perl-Erweiterung "Auswahl in Zwischenablage" können Sie urxvt-Kopien sowohl in die Primärdatenbank als auch in die Zwischenablage erstellen. Dies hält sie synchron, so dass Sie sie nur einmal in urxvt kopieren und es sollte in Anwendungen funktionieren, die beides verwenden.

URxvt.perl-ext-common: selection-to-clipboard
entartetJoe
quelle
2
Kann ich den Shorcut für diese Erweiterung ändern? Ich mag keine Standard-Strg-Alt-C / V. Ich hätte gerne Ctrl-Shift-C / V.
Trismegistos
3
@Trismegistos, haben einen loook hier
Coder