如何通过 tmux 管道传输 vim 剪贴板?

如何通过 tmux 管道传输 vim 剪贴板?

我注意到当通过终端使用 VIM 时,我可以轻松地使用剪贴板寄存器将一行文本复制到我的系统剪贴板V"+y(也就是说,然后使用Shift+Insert或将该文本粘贴到我的终端以外的其他窗口中Ctrl+v。)

现在我注意到,如果我在 tmux 会话中运行 VIM,它就不再起作用了。我知道有一个 tmux 剪贴板,但我实际上从未使用过它。有没有办法仍然可以将提取的文本放入我的系统剪贴板中?

答案1

这里

  1. 确保在 tmux 中设置了 set-clipboard:

$ tmux show -s 设置剪贴板
外部

如果它不在 on 或 external,请将其添加到 .tmux.conf 并重新启动 tmux(在 tmux 2.6 之前使用 on 而不是 external):

设置 -s 设置剪贴板外部

  1. 确保 Ms 已设置。启动 tmux 并运行:

$ tmux info|grep Ms
180: Ms: [缺失]

如果是[缺失],则获取 tmux 外部的 TERM 值:

$ echo $TERM
rxvt-unicode-256color

然后将适当的终端功能或终端覆盖行添加到 .tmux.conf 并重新启动 tmux。对于 tmux 3.2 或更高版本:

设置-as终端功能',rxvt-unicode-256color:剪贴板'

或者对于旧版本的 tmux:

设置 -as 终端覆盖',rxvt-unicode-256color:Ms=\E]52;%p1%s;%p2%s\007'

然后启动 tmux 并通过在 tmux 内部运行以下命令检查它是否正常工作:

$ tmux info|grep Ms:
180: Ms: (字符串) \033]52;%p1%s;%p2%s\a

相关内容