Dazu gibt es mehrere Möglichkeiten. Einige der Möglichkeiten, die bereits erwähnt wurden, sind (glaube ich) tmux , Bildschirm , Vim , Emacs und die Schale. Ich kenne weder Emacs noch Screen, also gehe ich auf die anderen drei ein.
Tmux
Obwohl es keine X-Auswahl ist, hat tmux einen Kopiermodus, der über prefix-[
( prefix
ist Ctrl + B standardmäßig). Der für diesen Modus verwendete Puffer ist separat und exklusiv für tmux, was einige Möglichkeiten eröffnet und ihn in den richtigen Situationen vielseitiger macht als die X-Auswahl.
Um diesen Modus zu verlassen, drücken Sie Q zu navigieren, verwenden Sie Ihre Vim- oder Emacs-Bindung (Standard = Vim), also hjkl
für Bewegung, v/V/C-v
für die Auswahl von Zeichen/Zeilen/Blöcken usw. Wenn Sie Ihre Auswahl getroffen haben, drücken Sie Enter um zu kopieren und den Modus zu verlassen.
Um aus diesem Puffer einzufügen, verwenden Sie prefix-]
.
Shell
Jede Installation von X11
scheint standardmäßig mit zwei Programmen geliefert zu werden: xclip
y xsel
(so wie es auch mit beiden startx
y xinit
). Die meisten der anderen Antworten erwähnen xclip
und ich mag wirklich xsel
für seine Kürze, daher werde ich auf xsel
.
Von xsel(1x) :
Eingabeoptionen \
-a, --append \
die Standardeingabe an die Auswahl anhängen. Impliziert -i .
-f, --follow \
an die Auswahl anhängen, wenn die Standardeingabe wächst. Impliziert -i .
-i, --input \
die Standardeingabe in die Auswahl einlesen.
Ausgabeoptionen \
-o, --output \
schreibt die Auswahl auf die Standardausgabe.
Handlungsoptionen \
-c, --clear \
die Auswahl aufheben. Setzt alle Eingabeoptionen außer Kraft.
-d, --delete \
Beantragen, dass die aktuelle Auswahl gelöscht wird. Dies löscht nicht nur die Auswahl, sondern fordert auch das Programm, in dem sich die Auswahl befindet, auf, den ausgewählten Inhalt zu löschen. Übersteuert alle Eingabeoptionen.
Auswahlmöglichkeiten \
-p, --primär \
mit der Auswahl PRIMARY arbeiten (Standard).
-s, --sekundär \
auf die Auswahl SEKUNDÄR einwirken.
-b, -clipboard \
auf die Auswahl CLIPBOARD einwirken.
Und das ist alles, was Sie wissen müssen. p
(oder nichts) für PRIMARY
, s
para SECONDARY
, b
para CLIPBOARD
, o
für die Ausgabe.
Beispiel: Ich möchte die Ausgabe von foo
von einem TTY und fügen Sie es auf einer Webseite für einen Fehlerbericht ein. Um dies zu tun, wäre es ideal, von/nach der TTY/X-Sitzung zu kopieren. Die Frage lautet also Wie kann ich vom TTY aus auf die Zwischenablage zugreifen?
In diesem Beispiel gehen wir davon aus, dass die X-Sitzung angezeigt wird :1
.
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
Dann kann ich Ctrl + V wie gewohnt in das Formular ein.
Angenommen, jemand auf der Support-Website gibt mir einen Befehl, den ich ausführen soll, um das Problem zu beheben. Er ist kompliziert und lang.
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
Pizza bestellen scheint eine produktive Nutzung der Befehlszeile zu sein.
...weitergehen.
Vim
Wenn kompiliert mit +clipboard
(Dies ist wichtig! Prüfen Sie Ihr vim --version
), sollte Vim Zugriff auf die X PRIMARY
y CLIPBOARD
Auswahlen. Die beiden Auswahlen sind über das Menü *
y +
Register und können wie jedes andere Register nach Belieben beschrieben und ausgelesen werden.
Zum Beispiel:
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
Falls Ihre Kopie von Vim den Zugriff auf X-Auswahlen nicht direkt unterstützt, ist das allerdings kein Weltuntergang. Sie können einfach die xsel
Technik wie im letzten Abschnitt beschrieben.
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
Binden Sie ein paar Tastenkombinationen und Sie sollten gut sein.