【VSCode】 使用 SFTP 插件实现多服务器同步

作为一名开发者,代码编辑器的选择对工作效率有着重要影响。我曾经因为 VSCode 在某些功能上的不足,比如对 PyTorch 的补全不够理想以及代码同步到多个远程服务器的不便,而转向了 PyCharm。在 PyCharm 中,可以方便地绑定多个服务器,在本地维护一份代码,然后根据服务器的资源情况灵活地上传到不同的服务器,这确实很方便。然而,最近由于 PyCharm 出了一些问题,我决定重新尝试使用 VSCode,而 VSCode 和 PyCharm 在功能上的主要差距就在于同步多个服务器这一点。不过,经过一番探索,我发现了一个名为 sftp 的插件,经过配置后,它似乎能够很好地解决这个问题。

下载插件

在 VSCode 的插件市场中搜索 sftp,会找到多个相关插件。我们需要选择作者是 Natizyskunk 的那个版本。因为原版作者的仓库已经多年没有维护了,存在很多问题,而这个版本是由一位开发者接手并持续维护的,相对来说更加稳定可靠。

配置 sftp.json

按下 Ctrl+Shift+P 组合键,调出 VSCode 的命令面板,在其中输入 sftp,然后选择 SFTP: Config 命令。这样,VSCode 会在项目的 .vscode 文件夹下生成一个 sftp.json 配置文件,我们可以在其中设置连接的相关参数。

以下是一个配置示例,其中添加了两个服务器的连接信息。remotePath 是本地文件在远程服务器上对应的目录路径,如果该路径不存在,插件会自动创建。ignore 部分则可以列出一些不需要同步的文件或文件夹,类似于 .gitignore 文件的作用。

复制代码
{
    "name": "✌",
    "protocol": "sftp",
    "port": 22,
    "profiles": {
        "159": {
            "host": "服务器1的IP地址",
            "username": "服务器1的用户名",
            "password": "服务器1的密码",
            "remotePath": "/data1/kevin/goubatest"
        },
        "190": {
            "host": "服务器2的IP地址",
            "username": "服务器2的用户名",
            "password": "服务器2的密码",
            "remotePath": "/raid/kevin/mmdet180"
        }
    },
    "uploadOnSave": true,
    "downloadOnOpen": false,
    "ignore": [
        ".vscode",
        ".git",
        ".DS_Store",
        ".github",
        ".dev_scripts",
        ".idea",
        "show_dirs/*",
        "work_dirs/*",
        "checkpoints/*",
        "data"
    ],
    "watcher": {
        "files": "data/*",
        "autoUpload": true,
        "autoDelete": false
    },
    "defaultProfile": "159"
}

在配置完成后,就可以开始将文件上传到服务器了。如果设置了 defaultProfile,那么在启动插件时会自动连接到指定的默认服务器。

在 VSCode 的左侧文件栏中,可以方便地将所有文件同步上传到服务器,也可以选择只同步部分文件,或者将远程服务器上的文件同步到本地,操作非常灵活。

上传文件后,在左侧的 SFTP 工具栏中可以看到远程目录下的文件列表。这些文件默认是只读的,文件名前会有一个 ~ 波浪线作为标识,这样可以有效防止误编辑。我认为这个插件在这方面比 PyCharm 做得更好。它会自动对比本地和远程文件的差异,当使用 Sync Local/Remote/Both 功能时,只会上传那些存在差异的文件,而不会对相同的文件进行重复上传。相比之下,PyCharm 会直接上传所有文件,如果本地存在一些体积较大的文件,每次上传都会耗费很多时间。

如果需要将代码同步到另一台服务器,只需要通过 SFTP: Set Profile 命令切换到目标服务器,然后再进行上传操作即可。

总之,通过使用 SFTP 插件,VSCode 在多服务器代码同步方面的功能得到了很好的补充,让我重新看到了使用 VSCode 的可能性。希望这篇文章能对其他有类似需求的开发者有所帮助。

相关推荐
陈希12316 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
测试界的小码农19 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
|_⊙19 小时前
网络层协议 IP
服务器·网络·tcp/ip
叼烟扛炮20 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
H.莓飛21 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
Rabitebla21 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
沫璃染墨1 天前
从零入门计算机网络系列(十五):TCP可靠传输机制详解——从序号与确认应答到乱序处理
服务器·网络·c++·tcp/ip·tcp
xyzzklk1 天前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮1 天前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
Android系统攻城狮1 天前
Linux FFmpeg深度解析之avcodec_align_dimensions调用流程与实战(二十九)
服务器·linux音视频·音视频进阶·ffmpeg音视频