如何在远程vps'vim和本地vim之间复制粘贴数据?

如何在远程vps'vim和本地vim之间复制粘贴数据?

使用 ssh 连接远程 vps。

ssh user@vps_ip

用vim编辑远程vps中的文件并写入一行

some text

在正常模式下,按yy,如何粘贴some text到我本地的vim?
反之亦然。

1.VIM的GUI风格
在debian操作系统的本地vim中:

vim --version | grep clipboard
+clipboard       +job             +path_extra      +user_commands
+eval            +mouse_dec       +statusline      +xterm_clipboard

在操作系统为 debian 的远程 vim 中:

vim --version | grep clipboard
-clipboard       +iconv           +path_extra      -toolbar
+eval            +mouse_dec       +startuptime     -xterm_clipboard

无法在远程 vim 中安装 vim-gtk。

sudo yum  install -y vim-gtk
No package vim-gtk available.

2.本地系统是否有X服务器?

3.您是否在本地系统上使用 GUI 登录会话?
本地操作系统的桌面是LXDE,进入GUI登录会话。

答案1

您可以通过运行打开远程文件vim scp://user@vps_ipi/remote_file,然后使用 打开本地文件:e local_file,之后您可以使用 和 命令在缓冲区之间切换:bn,并使用yyp命令在缓冲区之间进行复制和粘贴。

我进行了打开远程脚本的测试,然后通过ggVGy切换缓冲区复制其所有内容:bn并使用P.

答案2

您甚至无法从vim同一主机上的两个不同进程粘贴文本,因此也无法从不同主机上的进程粘贴文本。

对于短文本,您可以将一个终端窗口中的 vim 中的文本复制到主机的剪贴板,然后将其从主机的剪贴板粘贴到另一个终端窗口中的 vim 中。如果您不使用终端窗口,也可以使用tmux类似的效果。里面的 ssh 会话emacs也可以工作,但如果你想使用 emacs,你就不会询问 vim。

对于较长的文本,我会使用类似的程序将它们复制到远程主机scp或从远程主机复制它们,然后在本地使用该文件。

答案3

使用ssh -Y <hostname>,它将使 ssh 会话能够访问本地计算机的剪贴板。确保在远程计算机上X11Forwarding启用该功能。/etc/ssh/sshd_config

添加到两台机器上的 .vimrc 中:

 set clipboard=unnamedplus

默认情况下,这将允许使用剪贴板进行复制操作。现在,普通的复制和粘贴可以在不同的机器上工作。或者,您可以仅使用"+y指定剪贴板寄存器来获得相同的效果。

我想答案在你的情况下不起作用,因为你没有clipboard远程 vim 的支持,但我想添加这个答案以确保完整性,因为谷歌在搜索如何使用 vim 和 在机器之间复制文本的方法时显示了这个问题它可能对其他人有用。

相关内容