无法从 tmux (2.4+) 复制到 OS X 剪贴板

Ame*_*ina 3 osx tmux

以下代码用于在 my 中工作.tmux.conf

# Mac OS X:
bind-key -n -t emacs-copy M-w copy-pipe "reattach-to-user-namespace pbcopy"

# Move tmux copy buffer into x clipboard
unbind-key M-w
bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard" \; display-message 'Copying to clipboard'
Run Code Online (Sandbox Code Playgroud)

它最近停止工作,所以我不能再从 tmux 复制文本到其他地方。我猜这是升级 tmux 或reattach-to-user-namespace.

我现在收到以下错误:

invalid or unknown command: bind-key -n -t emacs-copy M-w copy-pipe 
"reattach-to-user-namespace pbcopy"
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的版本(来自brew)。

/usr/local/Cellar/tmux/2.4/bin/tmux

/user/local/bin/reattach-to-user-namespace/2.5
Run Code Online (Sandbox Code Playgroud)

可能发生了什么变化,我该如何恢复从tmux系统复制到系统的能力?

Ame*_*ina 5

请尝试以下操作:

bind-key -T copy-mode M-w send-keys -X copy-pipe 'reattach-to-user-namespace pbcopy'
Run Code Online (Sandbox Code Playgroud)

请注意tmux 最近更改的键表:

  • 关键表发生了重大变化。模式键表不再与主键表分开。所有模式密钥表都已被删除,以及用于 bind-key 和 unbind-key 的 -t 标志。

    emacs-edit、vi-edit、emacs-choose 和 vi-choose 表已被命令提示符和选择模式中的固定键绑定替换。模式键和状态键选项保留。

    emacs-copy 和 vi-copy 表已被 copy-mode 和 copy-mode-vi 表取代。命令使用 -X 和 -N 标志发送到发送密钥。所以如下:

    bind -temacs-copy C-Up scroll-up bind -temacs-copy -R5 WheelUpPane scroll-up

    变成:

    bind -Tcopy-mode C-Up send -X scroll-up bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up

    此更改允许使用完整的命令解析器(包括命令序列)和命令集 - 例如,带有编辑和历史记录的普通命令提示符现在用于搜索、跳转等,而不是自定义的。默认的 Cr 绑定现在是:

    bind -Tcopy-mode Cr command-prompt -p'search up' "send -X search-backward '%%'"

    还有一些新命令可用于 send -X,例如
    copy-pipe-and-cancel。