![如何在远程vps'vim和本地vim之间复制粘贴数据?](https://linux22.com/image/11393/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%9C%E7%A8%8Bvps'vim%E5%92%8C%E6%9C%AC%E5%9C%B0vim%E4%B9%8B%E9%97%B4%E5%A4%8D%E5%88%B6%E7%B2%98%E8%B4%B4%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
使用 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
,并使用yy
和p
命令在缓冲区之间进行复制和粘贴。
我进行了打开远程脚本的测试,然后通过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 和 在机器之间复制文本的方法时显示了这个问题它可能对其他人有用。