【问题标题】:Tmux: How to copy text between nested remote ssh session and local machineTmux:如何在嵌套的远程 ssh 会话和本地机器之间复制文本
【发布时间】:2020-07-10 09:23:39
【问题描述】:

我在本地有一个连接到多个远程 tmux 会话的 tmux 会话。

我不知道如何从这些远程 tmux 会话和本地机器复制文本。

神秘的是,打开远程 ssh 会话(不嵌套在本地 tmux 中)可以正常工作。

基本上,如果我启动一个 ssh 会话并附加到远程 tmux,那么一切正常(复制/粘贴)。另一方面,如果我启动本地 tmux 然后 ssh 到远程系统并附加到它的 tmux 会话,那么我无法从该远程会话复制到本地机器(我在 Catalina/MacOS 上)。这对我来说似乎很奇怪。

【问题讨论】:

    标签: macos ssh tmux


    【解决方案1】:

    我假设您的意思是在 tmux 中使用复制模式复制文本?

    tmux 可以使用 OSC 52 转义序列设置主机剪贴板,但它需要知道外部终端支持这一点,并且需要将外部终端配置为允许它。

    只有一个 tmux,您可能在 tmux 外部有 TERM=xterm 和一个默认允许这样做的终端,因此它无需任何配置更改即可工作。

    但是,如果有两个 tmux,内部 tmux 将有 TERM=screenTERM=tmux 和一个默认情况下不允许这样做的外部终端(外部 tmux)。

    所以要让它发挥作用,你需要做两件事:

    1) 配置外部 tmux 以允许剪贴板由内部程序使用 set -g set-clipboard on 设置(不要忘记在更改 .tmux.conf 后完全重新启动 tmux,或者也可以从命令提示符执行此操作)。

    2) 配置内部 tmux 以在外部终端也是 tmux 时设置剪贴板,方法是向终端覆盖添加 Ms 条目(如果您在 tmux 中有 TERM=tmux,请将 screen* 更改为 tmux*): set -as terminal-overrides ',screen*:Ms=\\E]52;%p1%s;%p2%s\\007'。如果您不重新启动它,您将需要在执行此操作后分离并重新附加 tmux。

    如果内部 tmux 非常旧,您可能还需要为它执行set -g set-clipboard on

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2016-05-30
      • 2016-09-27
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多