
Я использую специальный файл .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 в буфер обмена. Но каждый раз, когда я это делаю, tmux зависает и не принимает никаких входных данных. Я пробовал использовать + a ctrl, но это не помогает.yctrlq
Что я могу сделать, чтобы 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 работать в другой оболочке, не блокируя сеанс 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.