
我正在使用自訂 .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+ a ctrl+y從 tmux 複製緩衝區複製到剪貼簿。但每次我這樣做時 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 接收輸入。以下範例允許 xclip 在另一個 shell 中執行,而不阻塞 tmux 會話:
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"
您可以這樣做,EOF 在使用 xclip 將緩衝區複製到剪貼簿後關閉緩衝區。