我该如何使用 Vim 编辑网络上的文件?

我该如何使用 Vim 编辑网络上的文件?

目前我通过 SSH 连接到服务器并在服务器上执行 Vim 来完成此操作。这样做的好处是不必处理通过 SCP 从远程服务器打开文件的繁琐语法,更重要的是,能够真正快速地导航服务器的文件系统。另一方面,它有滞后性,这使得编辑有点困难。

编辑大量远程文件的规范方法是什么?

答案1

您可以使用SSHFS将远程主目录安装到本地文件夹中。具有使用本地vim当前基础设施和低延迟的优点。

答案2

您可以使用本地 vim 或 gvim 进行远程编辑。

:e scp://[email protected]/~/myfiles/whatever.file

scp是一个安全复制协议。它的验证方式与 相同ssh,因此您的 ssh 密钥需要可用,等等。还支持各种其他协议(请参阅 参考资料:help netrw-externapp),但如果您已经在同一位置使用 ssh,则 scp 可能是最简单的。

您可以通过这种方式浏览目录,只需确保路径以/.否则 vim 将其转换为一个新文件。

:w通过 scp 自动写入文件。如果由于某种原因写入失败,您应该注意到,因为它们将在状态栏中显示“shell returned 1”之类的内容。但是,请注意:如果您请注意,vim 不知道,这可能会产生后果 - 例如,如果您现在退出,它不会警告您。如果你:wa经常使用的话,特别容易错过这一点;|这是我唯一的警告。

官方文档请参见:help netrw

答案3

我会使用rsync。它仅传输更改的内容。就像这样:

rsync -e ssh -va remoteuser@remotehost:remotedir .

然后您可以在本地随意编辑文件。零滞后。您可以在提交之前检查所有文件:

rsync -e ssh -va . remoteuser@remotehost:remotedir

我假设您首先创建本地目录并cd进入其中。您还可以让它处理文件的删除,但要非常小心,因为在错误的目录中执行它可能会破坏整个目录树。

rsync -e ssh -va --delete . remoteuser@remotehost:remotedir

我所做的是首先使用“n”标志在“干模式”下运行它,如下所示:

rsync -e ssh -van --delete . remoteuser@remotehost:remotedir

如果是真的的话,它会报告它会做什么。如果我对报告的列表感到满意,我会再次运行它,并删除“n”标志。

rsync 非常高效。还有各种其他标志。这是相当复杂的。

答案4

也许您指定了最合适的方式 - SSH 方式,但仍然取决于所编辑文件的性质,您可以分配一个小分区,使其共享并将文件放在那里,当然,如果安全策略允许此操作。对于此建议,您可能最容易使用 NFS 或 Samba,但编辑测试文件仍然是 UNIX 中的一般概念,并且可能您必须保持当前的方式。

相关内容