
私は次のようなカスタム .tmux.conf ファイルを使用しています:
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"
ctrl私は tmux コピー バッファからクリップボードにコピーするために+ a ctrl+を使用していますy。しかし、これを行うたびに tmux がフリーズし、入力を受け付けなくなります。ctrl+を使用しようとしましたqが、役に立ちません。
tmux がフリーズするのを防ぐにはどうしたらいいでしょうか。どのショートカットがここで干渉しているのでしょうか? ショートカットctrl+ a ctrl+も試しましたがc、ここでも同じ問題が発生します。
答え1
コマンドラインでコマンドを入力すると、xclip
終了しないことに気づくでしょう。これは、入力を受け付け続けるためです。標準入力完了です。したがって、標準出力決して閉じられません。これを解決するには、標準出力の からxclip
まで/dev/null
。例:
bind y run "tmux save-buffer - | xclip -selection clipboard &>/dev/null"
この例ではリダイレクトします標準エラー出力念のため、それも。
答え2
xclip
入力を待機しているため、tmux は入力を受信できません。次の例では、tmux セッションをブロックせずに xclip を別のシェルで実行できます。
bind y run-shell -b "tmux save-buffer - | xclip -selection clipboard"
ワークフローを支援するために、次のようなメッセージも追加します。
bind y run-shell -b "tmux save-buffer - | xclip -selection clipboard; tmux display-message \"Tmux buffer saved to clipboard\" "
これが役に立つことを願っています!
答え3
bind y run-shell -b "cat << EOF | tmux save-buffer - | xclip -sel clipboard &>/dev/null"
このようにすると、xclip を使用してクリップボードにコピーした後、EOF でバッファが閉じられます。