在没有 X 的情况下在 vim 中复制/粘贴

在没有 X 的情况下在 vim 中复制/粘贴

在 vim 中,"+p从系统剪贴板粘贴。但是,当在非 GUI 机器上通过 SSH 远程工作时,此功能不可用。

在这种环境下可以实现复制/粘贴吗?

仅仅从终端复制文本是不够的,因为它还会复制超出文件范围的内容(例如,如果使用 tmux,它会复制全屏,因为它都是纯文本)。

答案1

一种解决方法是使用(远程访问)临时文件来传输文本:

如果您可以通过 SSH 返回到您自己的系统,您只需将:split scp://hostname/path/to/file拉出的文本放在那里,然后:write

如果您只能使用 SSH 从系统连接到服务器,请在本地打开 Vim 并从服务器访问临时文件:(vim scp://server/path/to/file或者直接使用scp)。

这一切都是由网络Vim 附带的插件。

答案2

在 MacOS 上,当从计算机 A 到计算机 B 并在计算机 B 中使用 vim 时,我将其添加到计算机 B 中的 .vimrc 中:

nmap yr :call system("ssh $machineA_IP pbcopy", @*)<CR>

这样,在正常模式下,如果 vim@machine_B 的内容 * 寄存器被复制到机器 A 的本地剪贴板,假设您已经使用 +clipboard 和 * 寄存器正确设置了 Vim

相关内容