![有没有办法在 osx 上通过 ssh 使用 tmux 和 vim 使用 iterm2 进行复制/粘贴?](https://linux22.com/image/1419868/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%9C%A8%20osx%20%E4%B8%8A%E9%80%9A%E8%BF%87%20ssh%20%E4%BD%BF%E7%94%A8%20tmux%20%E5%92%8C%20vim%20%E4%BD%BF%E7%94%A8%20iterm2%20%E8%BF%9B%E8%A1%8C%E5%A4%8D%E5%88%B6%2F%E7%B2%98%E8%B4%B4%EF%BC%9F.png)
鉴于我已通过 SSH 连接到服务器并且 tmux 正在运行,有没有什么简单的方法可以将其拉入 vim 中的寄存器并:
- 该文本是否可以在我的 tmux 剪贴板中使用?
- 我的 osx 剪贴板中有该文本吗?
我知道如何在 tmux 中复制/粘贴,iterm2 似乎可以将其传递到我的 osx 剪贴板上。但是有时我想在 vim 分屏中拉出文本,而 tmux 复制/粘贴不起作用。有人解决了这个问题吗?
非常感谢!
答案1
一种方法是创建一个 vim 函数,使用redir
或writefile
将提取的寄存器转储到文件中,使用tmux load-buffer
将其放入 tmux 剪贴板,然后删除该文件。
为了将远程 tmux 剪贴板放入 OS X 剪贴板,我使用ssh HOST tmux show-buffer | pbcopy
。
这两种情况都有点烦人,但我不知道还有什么更好的方法可以解决这个问题。
答案2
答案的一部分是在通过 SSH 退出之前在 Mac 上本地运行 tmux。然后,您就可以使用本地 tmux 进行复制/粘贴。同样,如果您需要在远程 vim 会话中抓取比当前屏幕更大的更多代码行,那么这不是非常理想的选择,但它适用于大多数场景。