Es gibt verschiedene Möglichkeiten. Einige der erwähnten Möglichkeiten umfassen (glaube ich) tmux, screen, vim, emacs und die Shell. Ich kenne keine Emacs oder Bildschirme, also gehe ich die anderen drei durch.
Tmux
Obwohl tmux keine X-Auswahl ist, verfügt es über einen Kopiermodus, auf den über prefix-[
( prefix
is Ctrl+) zugegriffen werden kannB Standard). Der für diesen Modus verwendete Puffer ist separat und exklusiv für tmux. Dies eröffnet zahlreiche Möglichkeiten und macht ihn in den richtigen Situationen vielseitiger als die X-Auswahl.
Um diesen Modus zu verlassen, drücken Sie q; Verwenden Sie zum Navigieren Ihre vim
oder die emacs
Bindung (Standard = vim), also hjkl
für die Bewegung, v/V/C-v
für die Auswahl von Zeichen / Zeilen / Blöcken usw. Wenn Sie Ihre Auswahl getroffen haben, drücken SieEnter den Modus zu kopieren und zu verlassen.
Verwenden Sie zum Einfügen aus diesem Puffer prefix-]
.
Schale
Jede Installation von X11
scheint standardmäßig mit zwei Programmen zu kommen: xclip
und xsel
(ein bisschen wie es auch mit beiden startx
und kommt xinit
). Die meisten anderen Antworten erwähnen xclip
, und ich mag es wirklich xsel
wegen seiner Kürze, also werde ich darauf eingehen xsel
.
Von xsel (1x) :
Eingabemöglichkeiten
-a, --anhängen
Fügen Sie der Auswahl die Standardeingabe hinzu. Impliziert -i .
-f, --follow
an die Auswahl anhängen, wenn die Standardeingabe wächst. Impliziert -i .
-i, --Eingabe
Lesen Sie die Standardeingabe in die Auswahl ein.
Ausgabeoptionen
-o, --Ausgabe
Schreiben Sie die Auswahl in die Standardausgabe.
Aktionsoptionen
-c, --klar
Löschen Sie die Auswahl. Überschreibt alle Eingabeoptionen.
-d, - löschen
Fordern Sie an, 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. Überschreibt alle Eingabeoptionen.
Auswahlmöglichkeiten
-p, --primär
Betätigen Sie die PRIMARY-Auswahl (Standard).
-s, --sekundär
arbeiten Sie an der SECONDARY-Auswahl.
-b, --clipboard
Betätigen Sie die CLIPBOARD-Auswahl.
Und das ist ungefähr alles, was Sie wissen müssen. p
(oder nichts) für PRIMARY
, s
für SECONDARY
, b
für CLIPBOARD
,o
für die Ausgabe.
Beispiel: Angenommen, ich möchte die Ausgabe foo
von einem TTY kopieren und für einen Fehlerbericht auf einer Webseite einfügen. Zu diesem Zweck ist es ideal, in die TTY / X-Sitzung zu kopieren. Es stellt sich also die Frage, wie ich über das TTY auf die Zwischenablage zugreifen kann.
In diesem Beispiel wird davon ausgegangen, 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
es wie gewohnt in die Form bringen.
Angenommen, jemand auf der Support-Website gibt mir einen Befehl zum Ausführen, um das Problem zu beheben. Es 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
Die Bestellung von Pizza scheint eine produktive Nutzung der Befehlszeile zu sein.
... weitermachen.
Vim
Wenn mit +clipboard
(Dies ist wichtig! Überprüfen Sie Ihre vim --version
) kompiliert wurde , sollte Vim Zugriff auf das X PRIMARY
und die CLIPBOARD
Auswahl haben. Die beiden Auswahlen sind von den *
und +
Registern sind, und kann zu und lesen Sie das gleiche wie jedes andere Register von in Ihrer Freizeit geschrieben 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
Wenn Ihre Kopie von vim den Zugriff auf X-Auswahlen jedoch nicht direkt unterstützt, ist dies nicht das Ende der Welt. Sie können einfach die xsel
im letzten Abschnitt beschriebene Technik verwenden.
: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 Schlüsselkombinationen und Sie sollten gut sein.
:%y+
in vim verwendet, was vim-speak bedeutet für "alle Zeilen in das '+' Register (die X-PRIMARY
Zwischenablage) ziehen (kopieren )". Sie können durch%
einen Bereich ersetzen , wenn Sie spezifisch sein möchten. Es gibt jedoch drei Einschränkungen: 1. Jetzt müssen Sie den gesamten Text in einer Datei speichern, bevor Sie ihn kopieren können. Dies steht im Gegensatz zu demxclip
in den Antworten genannten Befehl. 2. Wenn Sie noch nicht wissen, wie man vimt, kann dies mühsam sein. 3. Sie können dies nur tun, wenn beim Kompilieren von vim eine bestimmte Funktion aktiviert ist. Wenn Sie GVim installieren, sollte es standardmäßig sowohl in der GUI als auch in den Terminalinstanzen von vim aktiviert sein.