【发布时间】:2020-08-14 19:31:31
【问题描述】:
我在终端窗口中有一个到远程机器的 ssh 连接,并且 GVim 作为我的文本编辑器在本地运行。我可以通过 SSH 挂载远程机器并在本地 Vim 中打开文件。通过 Vim 对通过 SCP 进行编辑的支持,我还可以在本地 Vim 中编辑远程文件。
假设我然后在远程机器上使用ag 在我的项目中搜索符号:
[user@remote project]$ ag thingy
include/blah/foo.h
1137:void thingy() {
现在我可以在我的 SSH 会话中输入什么来将该文件发送到选项卡中的本地编辑器?如果我在本地机器上,我可以做类似gvim -p --remote-tab-silent include/blah/foo.h 的事情,但我不认为 Vim +clientserver 远程系统可以通过 SSH 会话转发,可以吗?如果我设置 X11 转发,它会以某种方式神奇地工作吗?如果是这样,Vim 将如何确定要连接到哪个远程服务器来编辑文件?嵌入 vim 的终端会话和我可以使用的 netrw 系统之间是否存在某种集成?
如果我想使用 shell 脚本和 netcat 以及通过 ssh 转发某种类型的套接字来滚动我自己的系统,我该如何设计呢?
【问题讨论】:
-
我不完全确定这是 SO 的主题,但我们确实有其他几个奇怪的 vim 技巧问题和一个活动的 vim 标签,即使使用 Vim 并不完全相同作为编程。还有其他更适合的 SE 网站吗?
-
我认为您可以轻松地使用本地 GVim 中的 netrw 打开远程文件,但反之则不行。
-
Neovim 内置了基于 TCP 的 RPC。 Vim 不能这样做。
标签: vim ssh x11-forwarding