Keyboard-Shortcuts

讓 tmux 將緩衝區復製到剪貼板

  • July 15, 2019

我試圖找出一種體面的方法來將 tmux 緩衝區中的內容複製到剪貼板中。我嘗試了幾種不同的方法,例如

bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer

這讓我非常接近,我所要做的就是在我執行前綴 p 之後按 control-d。

我嘗試通過這樣做來解決這個問題

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE'

但這行不通。事實上,如果我把它配對成

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE'

它沒有做任何事情,所以我假設拆分視窗不喜歡 << 在 shell 命令中。

有任何想法嗎?

編輯:如果你願意,你可以跳過select-pane -t 2,這並不重要。我只是使用特定的佈局,而窗格 2 是我在做其他事情時更喜歡拆分的佈局,因此預設情況下會進入涉及拆分的綁定。

這應該有效:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i"

copy-pipe命令從 1.8 版開始添加。它將選擇複製到 tmux 緩衝區並將其通過管道傳遞給命令。現在不需要前綴綁定。這是一個例子:

bind -t vi-copy y copy-pipe "xclip"

# For OS X users:
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

現在,當您在 中選擇了一些文本時copy-modey會將該文本複製到 tmux 緩衝區以及作業系統剪貼板。但是,如果您想將文本從剪貼板獲取到 tmux 緩衝區,則無濟於事。

引用自:https://unix.stackexchange.com/questions/15715