在ssh remotes

时间:2017-03-16 09:10:08

标签: linux macos vim ssh tmux

我在tmux里面的tmux里面有一个小问题。 为了解释我的问题,我认为首先说明我的设置是更好的

+----------+       +-----------+
| vim left |       | vim right | (vim 7.3)
+----------+--+    +-----------+-+
|  tmux left  |    | tmux right  | (tmux 1.6)
+-------------++   +-------------++
|   ssh left   |   |   ssh right  |
+--------------++  +--------------+-+
|   tmux left   |  |   tmux right   | (tmux 2.8)
+----------------+ +----------------+
|   iTerm left   | |   iTerm right  |
+----------------+-+----------------+
|         Hostsystem - macOS        |
+-----------------------------------+

我有两个用于源代码的数据透视监视器和一个用于每个监视器的一个iTerm。 我在每个终端上运行tmux进行多路复用。我不喜欢iTerm拆分和标签功能,因为我经常使用linux工作站,服务器通过ssh。所以我喜欢让tmux到处运行所有花哨的分裂,标签等。所以我只需要记住一组快捷方式,而不是为不同的终端(iTerm,终结者,xterm)提供不同的快捷方式,但是对于相同的操作。 正如我所说,在每个iTerms上我都会开始一个tmux会话。

现在我在远程服务器上工作,所以我通过两个iTerms中的ssh连接到它们。左右两个。

现在,我想你可以猜到,我在每个ssh会话上启动tmux,所以我可以直接在服务器上拆分我的屏幕并重新连接到会话,如果有一些网络连接问题而我丢失了我的ssh连接

因为我有一些编程方式,我在两个终端上启动vim。

最后一切都说了并解释了,我来到了我真正的问题。 如何在vim中进行复制(yank)(在tmux内部,在我的macOS主机上的iTerm实例内的外部tmux会话内的ssh会话内),所以它使用我的macOS剪贴板。

为简单起见,我在所有系统上使用相同的.vimrc。除了一些其他配置,我已配置vim 始终使用系统剪贴板而不是它自己的缓冲区。

在我的Mac上.tmux.conf我已配置set-option -g default-command "reattach-to-user-namespace -l /usr/local/bin/bash"以使系统剪贴板正常工作。

只要我在我的Mac上工作,一切正常,我可以从tmux中的vim复制到我的系统剪贴板。

+--------------+   +--------------+
|   vim left   |   |   vim right  | (vim 8.0)
+--------------++  +--------------+-+
|   tmux left   |  |   tmux right   | (tmux 2.8)
+----------------+ +----------------+
|   iTerm left   | |   iTerm right  |
+----------------+-+----------------+
|         Hostsystem - macOS        |
+-----------------------------------+

但是当我连接到远程服务器时,复制将停止为我工作。这真的让我伤心。

您可以在我的本地macOS here上找到我的.tmux.conf。 可以找到远程tmux的.tmux.conf here。 我的.vimrc可以找到here

我希望这可以帮助您理解我的问题。我希望有人可以帮助我。 我知道我可以使用iTerms-Copy功能进行复制,在用鼠标选择时按住opt键。但这不是一个最佳选择,只是一个非常有限的解决方法。

0 个答案:

没有答案