Tmux复制/粘贴在MacOS中

时间:2017-06-28 17:50:02

标签: tmux

我在MacOS上使用Tmux(2.5)(10.12.5)。我尝试使用pbcopypbpaste设置复制/粘贴,但是由于我的主要绑定看起来不起作用,因此tmux.conf我必须出错。

这是我tmux.conf的相关部分:

# Rebind prefix to b
bind B set -g prefix ^b
bind A set -g prefix ^a

# Setup 'v' to begin selection as in Vim
unbind -T copy-mode-vi v
bind-key -Tcopy-mode-vi 'v' send -X begin-selection

unbind -T copy-mode-vi y
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel pbcopy

# Setup mouse to copy selection on drag
bind-key -Tcopy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel pbcopy

# Update default binding of `Enter` to also use copy-pipe-and-cancel
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel pbcopy

# Bind ']' to use pbpaste
bind-key -T copy-mode-vi ] send -X "pbpaste | tmux load-buffer - && tmux paste-buffer"

对于为什么这些不能正常工作或如何调试发生的事情有任何想法?

3 个答案:

答案 0 :(得分:5)

以下是我使用reattach-to-user-namespace进行操作的方法。

set-window-option -g mode-keys vi
set -g default-command "reattach-to-user-namespace -l ${SHELL}"

bind-key -T copy-mode-vi 'v' send-keys -X begin-selection 
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy'
bind-key p paste-buffer

我的blog post更详细地解释了这一点。

答案 1 :(得分:1)

这是我的配置https://github.com/imomaliev/dotfiles/blob/master/tmux/osx.conf。我也使用2.5,对我来说没问题

# Copy to global clipboard
# for sierra use: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste
bind-key -Tcopy-mode-vi Y send -X copy-pipe "pbcopy"
bind-key P run "pbpaste | tmux load-buffer - && tmux paste-buffer"

答案 2 :(得分:0)

将Mojave与Terminal和tmux版本2.9a(通过Homebrew安装)一起使用。 已安装reattach-to-user-namespace(也是Homebrew)。

这是我的配置:

unbind -T copy-mode-vi             MouseDragEnd1Pane                                         # Don't copy on mouse release
bind   -T copy-mode-vi v   send -X begin-selection                                           # Selection keybind
bind   -T copy-mode-vi C-v send -X rectangle-toggle                                          # Toggle selection mode
bind   -T copy-mode-vi y   send -X copy-pipe "reattach-to-user-namespace pbcopy" \; send -X clear-selection # Copy to clipboard

bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe "reattach-to-user-namespace pbcopy" \; send -X clear-selection

bind   -T copy-mode-vi y   send -X copy-pipe "reattach-to-user-namespace pbcopy" \; send -X clear-selection # Copy to clipboard

bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"

这允许使用鼠标和键盘进行类似vim的复制(使用vctrl+v进行行选择和视觉选择)