tmux friert ein, wenn das Strg-Präfix Strg-Y verwendet wird

tmux friert ein, wenn das Strg-Präfix Strg-Y verwendet wird

Ich verwende eine benutzerdefinierte .tmux.conf-Datei, die folgendermaßen aussieht:

unbind-key C-b
set -g prefix C-a
bind-key C-a send-prefix

set-window-option -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

## CLIPBOARD selection integration
# Requires prefix key before the command key
# Copy tmux paste buffer to CLIPBOARD
bind C-y run "tmux show-buffer | xclip -i -selection clipboard"
# Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
bind C-p run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"

Ich verwende ctrl+ a ctrl+, yum vom Tmux-Kopierpuffer in die Zwischenablage zu kopieren. Aber jedes Mal, wenn ich das mache, friert Tmux ein und akzeptiert keine Eingaben. Ich habe versucht, ctrl+ zu verwenden q, aber das hilft nicht.

Was kann ich tun, damit tmux nicht einfriert, welche Tastenkombinationen stören hier? Habe auch die Tastenkombination ctrl+ a ctrl+ probiert c, gleiches Problem hier.

Antwort1

Wenn Sie den xclipBefehl in der Befehlszeile eingeben, werden Sie feststellen, dass er nicht beendet wird. Dies liegt daran, dass er weiterhin Eingaben akzeptiert, bisSTDINist fertig. SomitSTDOUTwird nie geschlossen. Sie können dies beheben, indem Sie dieSTDOUTvon xclipbis /dev/null. Beispiel:

bind y run "tmux save-buffer - | xclip -selection clipboard &>/dev/null"

In diesem Beispiel leite ich umSTDERRnur für den Fall, dass es wichtig ist.

Antwort2

xclipwartet auf Eingaben, wodurch tmux daran gehindert wird, Eingaben zu empfangen. Das folgende Beispiel ermöglicht es xclip, in einer anderen Shell zu laufen, ohne Ihre tmux-Sitzung zu blockieren:

bind y run-shell -b "tmux save-buffer - | xclip -selection clipboard"

Ich würde sogar eine Nachricht hinzufügen, um Ihren Arbeitsablauf zu verbessern:

bind y run-shell -b "tmux save-buffer - | xclip -selection clipboard; tmux display-message \"Tmux buffer saved to clipboard\" "

Ich hoffe das hilft!

Antwort3

bind y run-shell -b "cat << EOF | tmux save-buffer - | xclip -sel clipboard &>/dev/null"

Sie können es auf diese Weise tun: Das EOF schließt den Puffer, nachdem es mit xclip in die Zwischenablage kopiert wurde.

verwandte Informationen