我经常通过 FTP(用于 Web 开发的 CSS 文件)对相当大的文本文件进行小的更改,因为我的互联网连接非常慢,这是一个非常痛苦的过程。
即使我只更改文件的一个字符,我仍然需要等待相当长的时间,整个文件会重新上传到服务器。
有什么方法可以在我的本地计算机上编辑远程托管的文件,当我保存文件时,只上传文件中发生更改的部分?
编辑:我想我目前还不清楚我是如何使用我的 FTP 客户端的。基本上,我使用 WinSCP 通过 SFTP 打开一个远程文件。WinSCP 将它保存到一个 tmp 文件夹,启动 Sublime Text,然后我开始编辑它。当我点击保存时,WinSCP 会自动重新上传文件。我实际上从未将文件永久保存在我的计算机上 - 一切都是通过 WinSCP 的临时文件夹完成的。这就是为什么我正在寻找一种可以以这种“即打即跑”的方式使用的解决方案。
我之前在 ServerFault上发布了这个问题,其中建议使用 git 之类的东西,但是正如我所解释的:
使用 git 或类似的版本控制工具,我每次保存文件时都必须进行提交,对吗?即使这可以自动完成(即,如果我有一个宏在 Sublime Text 保存文件中创建 Ctrl-S 并同时执行 git push),我可能每小时对 CSS 文件进行 50 - 100 次微小的编辑;我肯定会得到一个垃圾邮件提交日志?此外,git 解决方案是不灵活的,因为它依赖于我正在编辑的任何文件作为 git repo 的一部分。
到目前为止,我能想到的唯一解决方案是使用 rsync 进行某种修改过程,但即便如此,它也非常繁琐:
但是,我需要手动设置或指定远程文件或目录路径,否则本地 rsync 脚本将不知道在哪里 rsync 文件,因此这种方法仍然非常不灵活。这种方法不会让我立即浏览到一个随机文件,打开它并像 FTP 客户端那样保存它。
使用此方法也没有像上传进度条这样的可见反馈。
Vim 有一个名为 netrw 的内置插件,它允许 Vim 编辑远程文件。Rsync 是它可以使用的协议之一:
:e rsync://user@hostname:port/path
:w rsync://user@hostname:port/path
Run Code Online (Sandbox Code Playgroud)
当然,如果您可以通过 SSH 访问远程机器,并且上面安装了 Vim,那么远程使用 Vim 可能会更简单。Nano、Emacs 和其他带有命令行界面的编辑器也是这种情况下的选择。但是,根据您的连接有多糟糕,这可能不是一个愉快的选择。
都说了,
对远程托管且必须“实时”和“就地”编辑的文件进行数百次微小的更改
如果没有可靠的回滚系统,例如 git 可以提供的,当您犯下不可避免的错误时,您和您的组织只会乞求痛苦,这些错误很可能会被忽视,直到您完全忘记了自己所做的事情。
| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |