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

dav*_*gan 14 ssh vim copy-paste

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

mik*_*996 25

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

  :e scp://user@host/relative/path/from/home.txt
Run Code Online (Sandbox Code Playgroud)

  • 对于绝对路径:`:e scp://user@host//tmp/file.txt` (3认同)

gar*_*ohn 9

如果你在远程机器上有足够的权限,你可以添加

AcceptEnv WINDOWID
Run Code Online (Sandbox Code Playgroud)

到 /etc/ssh/sshd_config 并重新启动 sshd

sudo /etc/init.d/ssh restart
Run Code Online (Sandbox Code Playgroud)

然后在您的本地机器上添加

ForwardX11 yes
SendEnv WINDOWID
Run Code Online (Sandbox Code Playgroud)

到你的 ~/.ssh/config 文件

然后通过在远程机器(例如gvim -v)上运行 X 感知 vim ,您可以从 X 剪贴板复制和粘贴。只需直观地选择文本(例如,使用V)并将其拉入*寄存器。

编辑

我忘了SendEnv WINDOWID在你的 ~/.ssh/config 中包含关于设置的部分,所以我添加了它并将 X 转发的启用从命令行(ssh-X选项)移动到 ~/.ssh/config 文件(ForwardX11 yes)。