通过 ssh 在 osx 和 linux 之间使用剪贴板

通过 ssh 在 osx 和 linux 之间使用剪贴板

我的梦想:从我的 osx 机器,我通过 ssh 连接到一台 linux 机器,并且可以使用 xclip 或 pbcopy 等命令行应用程序复制粘贴,然后能够在我的主机上使用它。

示例输入

(mac)$ ssh -X linux_mach
(lin)$ echo "heyyy" | pbcopy
(lin)$ any_other_command
(lin)$ exit
(mac)$ pbpaste 
heyyy

我看过很多关于如何从 osx 迁移到 osx 或从 linux 迁移到 linux 的答案。但是,即使我启用了 X11 转发,我也无法将这些答案整合在一起,让它在不同系统上工作。

我希望能够使用命令行应用程序来执行此操作的原因是我计划将其注入到我的 tmux + vim 会话中,当我在本地运行 tmux 会话时我已经能够做到这一点。

我可以在这个网址找到最接近此工作的内容:http://seancoates.com/blogs/remote-pbcopy

答案1

您的问题有一个简单的解决方案。我一直都在做您想做的事情。

您的第一步应该是按照上述步骤启动 tmux。但是,您应该在 tmux 配置.tmux.conf文件中包含以下内容,以将适当的和弦绑定到 pbcopy 和 pbpaste。

我已经为 macos 添加了.tmux.conf复制/粘贴集成的示例配置部分(linux 会使用 xclip 或其他 linux kill-ring 集成)。

# copy-paste integration
set-option -g default-command "login-shell"

# use vim key bindings in copy mode
setw -g mode-keys vi

# use 'v' to begin selection like in vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "pbcopy"

# update default bindings of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "pbcopy"

# bind ']' to use pbpaste
bind ] run "pbpaste | tmux load-buffer - && tmux paste-buffer"

然后,当您通过 ssh 连接到远程服务器时,您可以使用多种选项。

  1. 您可以通过突出显示文本来复制文本,然后在释放鼠标之前键入y以将文本复制到本地 mac 剪贴板
  2. 要粘贴文本,只需使用和弦cmd-v(无论您是本地还是远程都没关系)
  3. 使用 tmux chord,<prefix>,[或者ctrl-a,[在我的情况下进入 tmux 复制模式
    • 使用 开始复制选择v,文本突出显示后,使用y

相关内容