在远程tmux会话和本地Mac OS粘贴板之间同步粘贴板


18

设置:我在MacOS上使用iTerm2连接到远程服务器。远程服务器运行tmux,在其中打开文件并在vim会话中进行编辑。

问题:我无法在远程tmux会话和本地iTerm客户端之间复制/粘贴。我可以使用iTerm 2的alt / option +鼠标选择来选择文本,但这会在多个vim窗格/ tmux窗格上复制-不好。

是否有任何优雅的解决方案可以使tmux窗格中的选择在远程粘贴板和本地(MacOS粘贴板)之间同步?我已经看到了reattach-to-user-namespace,但是我可以肯定它不能满足我的要求。


3
这真的是tmux问题吗?在我看来,一般来说,仅通过ssh进行连接时,您就会遇到相同的问题。
kejadlen'4

3
这可能不是tmux问题,但它是工作流程问题。我不是唯一一个遇到这个确切问题的人-这就是为什么我想知道其他人正在做些什么来解决这个问题。
bhargav 2012年

Answers:


13

因此,当您使用ssh进入服务器时,可以使用反向隧道,以便可以与OSX机器对话以发送命令do pbcopy

ssh -R 1234:localhost:22 remoteServer

1234用任何打开的端口替换远程服务器。然后在远程服务器上,您可以运行:

tmux save-buffer - | ssh -p 1234 localhost pbcopy

那应该连接回OSX并将tmux复制缓冲区的内容发送给它。您可能需要使用ssh键来防止在OSX计算机上键入密码。

如果可行,则可以创建tmux绑定。

bind C-c run "tmux save-buffer - | ssh -p 1234 localhost pbcopy"

我应该注意,要使其正常工作,您将需要在OSX中打开“远程共享”。

次要选项:

由于您使用的是OSX,因此如果您也使用iTerm2,则可以考虑安装http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203.tar.gz&can = 2&q =在您的服务器上。

基本上,这是一个自定义tmux,支持“ -C”标志。此标志将窗口和窗格移交,并将其全部拆分到iTerm2。



2

一种更简单的方法

  1. 启用XQuartz同步剪贴板
  2. 连接到远程服务器时使用X11转发
  3. 在您的tmux.conf中有一个绑定: bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • 您选择的X剪贴板在管道后的位置

您也可以在vim中进行类似的绑定


0

感谢教皇的回答,我尝试了tmux -C提示。

  1. 您无需安装任何软件,因为当前的tmux版本支持该-C标志。
  2. 使用-CC,因为-C它并不总是有效。

因此,使用tmux -CC(或tmux -CC attach)tmux比现在已经更好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.