
Я пытаюсь эмулировать в Linux следующие привязки, которые работают в OSX:
# 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"
То есть, я хочу связать команду для явного копирования буфера tmux в системный буфер обмена и другую команду для обратного копирования. Янехочу автоматически использовать vi-select для копирования в системный буфер обмена из tmux, так как многие изсуществующие ответыадрес.
Я попробовал следующие привязки (по одной за раз).
bind C-c run "tmux save-buffer - | xclip -in -selection clipboard"
bind C-c run "tmux show-buffer | xclip -sel clip -i"
Оба они, кажется, работают правильно при первом использовании, но затем появляется серьезный побочный эффект: отключение всех моих сочетаний клавиш tmux после использования.
То есть ни одна из моих комбинаций клавиш tmux не работает после первого копирования.
Как я могу скопировать что-либо из буфера обмена tmux в системный буфер обмена и наоборот, не лишая себя возможности выполнять дальнейшие команды tmux?
решение1
xclip имеет ошибку, из-за которой он не закрывает stdout, что означает, что tmux не знает, что он закончил. Вот почему вы не можете запустить какие-либо дальнейшие команды tmux после первого копирования. Так что вы можете либо:
1) Используйте xsel вместо xclip, который не страдает от той же проблемы.
2) Перенаправить stdout /dev/null
следующим образом:xclip ... >/dev/null
3) Используйте run -b
вместо run
, чтобы tmux не ждал завершения xclip.