Macos Tmux:如何在嵌套的远程ssh会话和本地计算机之间复制文本
我在本地有一个连接到多个远程tmux会话的tmux会话 我无法理解如何从这些远程tmux会话和本地计算机复制文本 奇怪的是,打开远程ssh会话(不嵌套在本地tmux中)是有效的Macos Tmux:如何在嵌套的远程ssh会话和本地计算机之间复制文本,macos,ssh,tmux,Macos,Ssh,Tmux,我在本地有一个连接到多个远程tmux会话的tmux会话 我无法理解如何从这些远程tmux会话和本地计算机复制文本 奇怪的是,打开远程ssh会话(不嵌套在本地tmux中)是有效的 基本上,如果我启动ssh会话并连接到远程tmux,那么一切都可以正常工作(复制/粘贴)。另一方面,如果我启动一个本地tmux,然后用ssh连接到一个远程系统并连接到它的tmux会话,那么我就不能从该远程会话复制到本地机器(我在Catalina/MacOS上)。我觉得这很奇怪。我想你是说在tmux中用复制模式复制文本 tm
基本上,如果我启动ssh会话并连接到远程tmux,那么一切都可以正常工作(复制/粘贴)。另一方面,如果我启动一个本地tmux,然后用ssh连接到一个远程系统并连接到它的tmux会话,那么我就不能从该远程会话复制到本地机器(我在Catalina/MacOS上)。我觉得这很奇怪。我想你是说在tmux中用复制模式复制文本 tmux可以使用OSC 52转义序列设置主机剪贴板,但需要注意外部终端支持此操作,并且需要将外部终端配置为允许此操作 由于只有一个tmux,您可能在tmux之外有
TERM=xterm
,并且默认情况下有一个终端允许这样做,因此它可以在不更改任何配置的情况下工作
但是,对于两个tmux,内部tmux将具有默认情况下不允许的TERM=screen
或TERM=tmux
和外部终端(外部tmux)
因此,要使其发挥作用,您需要做两件事:
1) 将外部tmux配置为允许剪贴板由内部程序通过上的set-g set clipboard进行设置(不要忘记在更改.tmux.conf后完全重新启动tmux,或者也可以通过命令提示符进行此操作)
2) 通过向终端覆盖添加Ms
条目,配置内部tmux以在外部终端也是tmux时设置剪贴板(将screen*
更改为tmux*
如果您有TERM=tmux
内部tmux):set-as-terminal overrides',screen*:Ms=\\E]52;%p1%s;%p2%s\\007'
。如果不重新启动tmux,则需要在执行此操作后分离并重新连接tmux
如果内部tmux非常旧,您可能还需要对其执行set-g set clipboard on
。我想您的意思是在tmux中使用复制模式复制文本
tmux可以使用OSC 52转义序列设置主机剪贴板,但需要注意外部终端支持此操作,并且需要将外部终端配置为允许此操作
由于只有一个tmux,您可能在tmux之外有TERM=xterm
,并且默认情况下有一个终端允许这样做,因此它可以在不更改任何配置的情况下工作
但是,对于两个tmux,内部tmux将具有默认情况下不允许的TERM=screen
或TERM=tmux
和外部终端(外部tmux)
因此,要使其发挥作用,您需要做两件事:
1) 将外部tmux配置为允许剪贴板由内部程序通过
上的set-g set clipboard进行设置(不要忘记在更改.tmux.conf后完全重新启动tmux,或者也可以通过命令提示符进行此操作)
2) 通过向终端覆盖添加Ms
条目,配置内部tmux以在外部终端也是tmux时设置剪贴板(将screen*
更改为tmux*
如果您有TERM=tmux
内部tmux):set-as-terminal overrides',screen*:Ms=\\E]52;%p1%s;%p2%s\\007'
。如果不重新启动tmux,则需要在执行此操作后分离并重新连接tmux
如果内部tmux非常旧,您可能还需要对其执行set-g设置剪贴板