Wie erstelle ich einen separaten Befehl zum Kopieren von meiner Tmux-Zwischenablage in meine Linux-Zwischenablage?

Wie erstelle ich einen separaten Befehl zum Kopieren von meiner Tmux-Zwischenablage in meine Linux-Zwischenablage?

Ich versuche, die folgenden Bindungen, die unter OSX funktionieren, unter Linux zu emulieren:

# Copy and paste from system clipboard
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

Das heißt, ich möchte einen Befehl binden, um den Tmux-Puffer explizit in meine Systemzwischenablage zu kopieren, und einen anderen Befehl, um ihn zurück zu kopieren. Ichnichtmöchte automatisch vi-select verwenden, um von tmux in meine Systemzwischenablage zu kopieren, da viele derVorhandene AntwortenAdresse.

Ich habe die folgenden Bindungen (eine nach der anderen) ausprobiert.

bind C-c run "tmux save-buffer - | xclip -in -selection clipboard"
bind C-c run "tmux show-buffer | xclip -sel clip -i"

Beide scheinen beim ersten Einsatz das Richtige zu tun, haben dann aber einen schwerwiegenden Nebeneffekt: Sie deaktivieren nach dem Einsatz alle meine tmux-Tastenkombinationen.

Das heißt, keine meiner Tmux-Tastenkombinationen funktionieren nach der ersten Kopie.

Wie kann ich etwas explizit aus meiner Tmux-Zwischenablage in meine Systemzwischenablage und umgekehrt kopieren, ohne die Möglichkeit zum Ausführen weiterer Tmux-Befehle zu deaktivieren?

Antwort1

xclip hat einen Fehler, bei dem stdout nicht geschlossen wird, was bedeutet, dass tmux nicht weiß, dass es fertig ist. Aus diesem Grund können Sie nach dem ersten Kopieren keine weiteren tmux-Befehle ausführen. Sie können also entweder:

1) Verwenden Sie xsel statt xclip, da hier das Problem nicht auftritt.

2) Leiten Sie stdout /dev/nullfolgendermaßen um:xclip ... >/dev/null

3) Verwenden Sie run -banstelle von run, damit tmux nicht wartet, bis xclip fertig ist.

verwandte Informationen