【发布时间】:2020-04-14 01:30:03
【问题描述】:
有很多类似的问题,但没有一个有效的答案,而且它应该是微不足道的,因为它曾经是。
场景: 在 Ubuntu 桌面系统上,我正在运行一个终端,我通过 SSH 连接到远程服务器。通常,我可以用鼠标从终端(即“从”远程服务器)中选择文本,然后使用 CTRL+SHIFT+C 将其复制到本地(而不是像我一样使用 CTRL+C将在终端以外的任何应用程序中执行)并将选择复制到本地剪贴板,然后我可以将其粘贴到任何地方。这也将允许我使用 CTRL+SHIFT+V 将其粘贴到终端本身(或另一个),最终将其粘贴到远程服务器上运行的任何内容(包括 vim)。
这曾经在 在远程服务器上运行 vim 时也可以工作(在远程服务器上使用 debian 8),所以澄清一下:在我的本地 ubuntu 机器中是一个终端;在终端内,我通过 ssh 连接到远程服务器;在我正在运行 vim 的服务器上;所以在远程服务器上用 vim 打开的文件的内容在我本地机器的终端中是可见的。 Ctrl+Shift+C 曾经允许我将选择复制到本地计算机上的本地剪贴板,然后我可以将其粘贴到本地文本编辑器或回到远程计算机上的 vim。这样,我可以从远程 vim 复制粘贴到本地 gedit,反之亦然,或者从远程 vim 复制到远程 vim(通过我的本地剪贴板),或者从远程 vim 复制到另一个终端中的另一个远程 vim,无论是在同一台服务器上还是在另一台服务器上。我完全清楚远程服务器在这种情况下对复制和粘贴一无所知。本地系统只是复制它在终端中看到的文本(恰好是在远程机器上通过 ssh 运行的某些内容的输出),然后将其粘贴回终端(这导致它通过 ssh 进入远程机器)。我知道,它对我有用。
当涉及 vim 时,这不再起作用(在远程机器上使用 debian 10)。现在在远程服务器上我正在运行 Debian 10。只要在远程服务器上我 不运行 vim,Ctrl+Shift+C 仍然有效(复制到本地剪贴板)。例如,我可以使用 Ctrl+Shift+C 将文本从远程控制台复制到本地剪贴板。无论我是否在远程机器上的 vim 中,Ctrl+Shift+V 仍然有效。但是,当 vim 在终端中的远程计算机上打开时,Ctrl+Shift+C 不会复制到本地剪贴板。
我的猜测是 Ctrl+Shift+C 以某种方式被 vim 捕获。
那么,当这个终端碰巧正在运行 ssh 并且 vim 碰巧在远程机器上打开时,如何将文本从终端复制到 ubuntu 上的剪贴板?
我知道我可以使用y 来“复制”(即复制)和p 在 vim 中远程粘贴。然而,这不是我要找的。这一切都是远程发生的,只允许我在远程机器上从 vim 复制到 vim(也许也从 vim 复制到远程机器上的其他东西,我不在乎)。这不允许我从远程机器上的 vim 复制到本地机器上的文本编辑器。
我不想要一个复杂的解决方案,包括从 vim“拉”到远程机器上的其他东西,然后 ftp 将文件传输到我的本地机器或其他东西。那是垃圾。我想LOCALLY COPY在终端本地看到的任何东西,尽管终端中运行的东西是通过远程机器上的ssh vim。
我以前已经能够做到这一点。我仍然可以使用运行 debian 8 的远程服务器。但不能在运行 debian 10 的远程服务器上。
我该怎么做?
【问题讨论】: