Es ist einfach, aber Sie müssen xsel
zuerst das Tool installieren :
sudo apt-get install xsel
TL; DR: Hier sind die Befehle, die Sie wahrscheinlich am Ende für Ihre Verknüpfungen verwenden möchten. Ich verwende die Versionen mit printf
überall für Einheitlichkeit und einfachere Anpassung, auch wenn eine einfachere Variante genug gewesen wäre:
Hängen Sie die Auswahl direkt an das Ende der Zwischenablage an:
bash -c 'printf "%b%b" "$(xsel -b)" "$(xsel)" | xsel -ib ; xsel -c'
Fügen Sie die Auswahl nach einem Zeilenumbruch an das Ende der Zwischenablage an:
bash -c 'printf "%b\n%b" "$(xsel -b)" "$(xsel)" | xsel -ib ; xsel -c'
Fügen Sie die Auswahl direkt an den Anfang der Zwischenablage an:
bash -c 'printf "%b%b" "$(xsel)" "$(xsel -b)" | xsel -ib ; xsel -c'
Fügen Sie die Auswahl nach einem Zeilenumbruch an den Anfang der Zwischenablage an:
bash -c 'printf "%b\n%b" "$(xsel)" "$(xsel -b)" | xsel -ib ; xsel -c'
Sie alle enthalten das Zurücksetzen des Primärpuffers nach dem Anhängen an die Zwischenablage, um zu verhindern, dass derselbe Inhalt doppelt angehängt wird. Wenn Sie das nicht möchten, entfernen Sie das ; xsel -c
am Ende jedes Befehls.
Lange Erklärung:
Sie müssen wissen, dass X 3 Puffer enthält, die primäre Auswahl, die sekundäre Auswahl und die Zwischenablage .
Sie kennen die Zwischenablage von Ctrl+ C, Ctrl+ Vusw. Es ist der Puffer, den Sie normalerweise zum Kopieren und Einfügen von Inhalten verwenden.
Die primäre Auswahl ist jedoch der Puffer, der immer automatisch den von Ihnen ausgewählten Text enthält, unabhängig davon, in welchem Fenster er sich befindet und ohne zusätzliche Benutzerinteraktion.
Wir haben nur ein Problem: Der Puffer wird aktualisiert, sobald Sie ein Textschnipsel auswählen. Er wird jedoch nicht gelöscht, wenn Sie auf eine andere Stelle klicken, um die Auswahl abzubrechen. Es enthält weiterhin den Inhalt Ihrer letzten Auswahl.
Die sekundäre Auswahl wird nur von wenigen Programmen verwendet und ist für uns hier nicht interessant.
Das heißt, wir können das Verhalten von Ctrl+ Cmit diesem Befehl nachahmen, der die primäre Auswahl (zuletzt hervorgehobener Text) in die Zwischenablage kopiert:
xsel | xsel -ib
xsel
Ohne Argumente wird der Inhalt der primären Auswahl in STDOUT gedruckt. xsel -ab
schreibt ( -i
) die Daten von STDIN in die Zwischenablage ( -b
).
Um Daten direkt an den aktuellen Inhalt der Zwischenablage anzuhängen (ohne Zeilenumbruch dazwischen), anstatt sie zu ersetzen, verwenden wir -a
stattdessen die Option -i
. Dieser Befehl hängt das zuletzt ausgewählte Textausschnitt an den aktuellen Inhalt der Zwischenablage an:
xsel | xsel -ab
Wenn Sie wirklich einen zusätzlichen Zeilenumbruch oder eine andere Formatierung wünschen, können wir die Daten durch printf
oder ein anderes Tool leiten, mit dem Sie sie verarbeiten möchten. Hier ist ein Beispiel, das sowohl die letzte Auswahl als auch den aktuellen Inhalt der Zwischenablage liest und sie mithilfe einer neuen Zeile zusammenfügt:
printf "%b\n%b" "$(xsel -b)" "$(xsel)" | xsel -ib
xsel -b
Gibt den aktuellen Inhalt der Zwischenablage zurück. Die Formatierungszeichenfolge, printf
die %b
als Platzhalter für die Argumente verwendet wird, \n
stellt einen Zeilenumbruch dar. Weitere Informationen erhalten Sie printf
durch Eingabe man printf
.
Durch Umschalten der beiden Argumente am Ende der Zeichenfolge können Sie ihre Reihenfolge umkehren und anstelle des Endes an den Anfang anhängen.
Wenn Sie vermeiden möchten, dass dieselben Daten versehentlich zweimal an die Zwischenablage angehängt werden (Sie müssen sie erneut auswählen, wenn Sie sie zweimal anhängen möchten!), Können Sie den primären Auswahlpuffer manuell löschen, nachdem der Befehl folgendermaßen ausgeführt wurde:
xsel -c
Führen Sie dies einfach nach dem grundlegenden Befehl zum Anhängen der Zwischenablage folgendermaßen aus:
printf "%b\n%b" "$(xsel -b)" "$(xsel)" | xsel -ib ; xsel -c
Wenn Sie dies alles wissen, können Sie Befehle für Ihre Tastaturkürzel schreiben, die genau das tun, was Sie wollen. Denken Sie jedoch daran, dass unsere Einzeiler alle Bash-Funktionen wie Piping stark nutzen. Sie müssen sie daher mit Bash ausführen:
bash -c 'COMMAND'
Im Abschnitt TL; DR oben in der Antwort finden Sie eine Befehlsliste, die zum Erstellen von Verknüpfungen geeignet ist.