Vim 保存时同步到远程

Vim 保存时同步到远程

我正在寻找一个类似于的插件或脚本Sublime SFTP
基本上,它应该包含一个配置文件并映射本地和远程层次结构。
保存到文件后,它应该能够相应地将更改上传到远程。

不熟悉编写 Vim 脚本,因此如果可以使用脚本实现,希望它不会太难理解和修改。它应该足够灵活,可以映射到不同的项目,而不必每次切换cd到不同的项目时都更改脚本。

我确实找到了ftpsync 插件但它似乎相当手动,没有提到配置文件。

答案1

Vim 默认带有 netrw 插件。它是一个本地/远程文件浏览器,您可以在 中阅读有关它的信息:h netrw

基本用法如下:

:e scp://[email protected]/path/to/project/ " list content of remote directory
/filename<CR>                             " jump to filename
<cr>                                      " open file for editing
(editing)                                 " magic…
:w                                        " save file remotely
:Rex                                      " re-open latest file listing
rince, repeat…

实际上,netrw 的工作方式与任何其他编辑器/IDE 中的任何其他 SFTP 插件/功能一样:文件在本地下载、编辑和保存,最后重新上传。

不过,Netrw 是一个相当复杂的工具,我建议你仔细阅读文档。

然而…

…直接在远程服务器上编辑文件(无论是通过 ssh 远程编辑还是通过 (S)FTP 本地编辑)都不是一个好主意。这样做速度很慢,而且从代码质量的角度来看也不是特别安全。

假设您正在进行 Web 开发,那么更好的策略是在您自己的机器上运行开发服务器,并且仅在本地测试完所有内容后才将您的文件同步到远程测试服务器。

该“同步”部分通常使用专用的 (S)FTP 客户端 GUI 或 CLI,或者更好的是,使用 Subversion、Mercurial、Git 或其他 VCS 来最有效地处理。

作为一名 Web 开发人员,我强烈建议您采用 VCS 路线。

答案2

我为此编写了一个插件。可以在这里找到:https://github.com/hesselbom/vim-hsftp

它允许您通过 sftp 下载或上传当前文件。

它还处于早期阶段,但是已经满足了我的目的,如果你愿意的话,你可以自由地分叉它或者做出贡献!

答案3

用于通过 sftp 同步文件的 vim 插件可以在这里找到

答案4

或者你可以尝试我写的这个插件:https://github.com/cosminadrianpopescu/filesync

它与 netrw 支持的任何功能 (ftp、ssh 等等) 兼容。

相关内容