如何将文本从远程Vim复制并粘贴到本地Vim?


12

我正在通过ssh在远程计算机上的vim中编辑文件,我想从远程文件中复制文本并将其粘贴到在本地计算机上运行的vim实例中。是否有捷径可寻?我可以使用终端仿真器的选择功能来选择当前在屏幕上显示的文本,但是如果我的选择大于屏幕上可以显示的文本,那我就不走运了。


Answers:


23

本地vim会话中打开远程文件:

  :e scp://user@host/relative/path/from/home.txt

我喜欢。漂亮又简单。
2014年

大提示!可以scp://在其他地方识别吗?还是仅VIM?
冷冻火焰

1
@FrozenFlame:我相信它是特定于应用程序的。但是,如果像KDE或Gnome这样的大型DE要求在每个应用程序中都支持此架构,我不会感到惊讶。
nperson325681 2015年

1
对于绝对路径::e scp://user@host//tmp/file.txt
Simon A. Eugster

9

如果您在远程计算机上具有足够的权限,则可以添加

AcceptEnv WINDOWID

到/ etc / ssh / sshd_config并使用以下命令重新启动sshd

sudo /etc/init.d/ssh restart

然后在您的本地计算机上添加

ForwardX11 yes
SendEnv WINDOWID

到您的〜/ .ssh / config文件

然后,通过在远程计算机(例如gvim -v)上运行支持X的vim ,您可以在X剪贴板中复制和粘贴。只需视觉上选择文本(例如,使用V)并将其拉到*寄存器中即可。

编辑

我忘记SendEnv WINDOWID在〜/ .ssh / config中包含有关设置的部分,因此我添加了该内容,并将启用X转发的功能从命令行(ssh -X选项)移到了〜/ .ssh / config文件(ForwardX11 yes)。


我需要安装xauth软件包才能在Debian上工作。
leo

这样,我可以在本地复制并远程粘贴。是否有其他方法可以做到?谢谢!
Paschalis 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.