FTPSync 不支持自动上传,所有上传必须手动触发;它不监听保存事件,而 SFTP 插件才支持 upload_on_save。

不能。 FTPSync 插件从设计上就不支持 save on upload 或 sync_on_save,它没有监听保存事件的逻辑,所有上传必须手动触发 —— 比如按 Ctrl+Alt+U(Windows/Linux)或 Cmd+Alt+U(macOS),或通过命令面板执行 FTPSync: Upload File。
为什么你看到“保存即同步”都是错觉
很多人误以为 FTPSync 能自动上传,是因为:
- 把 SFTP 插件(wbond 版)和 FTPSync 混用了;SFTP 支持
"upload_on_save": true,FTPSync 完全不读这个字段 - 本地开了其他工具(如 WinSCP 的“远程编辑”模式、rsync + inotify/fswatch 脚本),实际不是 Sublime 在干活
- 配置文件名写成
sftp-config.json或放错位置,导致 SFTP 插件被误启,而你以为是 FTPSync 在运行
FTPSync 正确配置要点(仅限手动上传)
如果你只需要轻量、可控的手动上传(比如老式虚拟主机、只开放 FTP 端口 21 的环境),FTPSync 可用,但必须满足:
- 配置文件名必须是全小写:
ftpsync.json,且放在项目根目录(即通过Project → Add Folder to Project加入的文件夹下) - 必填字段:
"host"、"username"、"password_b64"(明文密码含特殊字符时易失败,建议 Base64 编码后填入)、"remote_path" - 若服务器启用被动模式(PASV),必须显式设
"passive": true,否则连接超时 - 不支持通配符排除(如
"*.log"),只能靠"exclusions"列出具体路径前缀,例如:["node_modules/", ".git/"]
SFTP 插件才是“保存即上传”的唯一可行路径
真要实现编辑保存后立刻上传到云服务器(如阿里云 ECS、腾讯云 CVM),唯一稳定方案是 wbond 版 SFTP 插件(注意不是 sftp-client 或 FTPSync):
- 安装方式:命令面板输入
Package Control: Install Package→ 搜索sftp3(社区维护分支,兼容 ST4)或旧版SFTP(v3.4.3,作者 wbond) - 配置文件名:
sftp-config.json,必须放在项目根目录;关键字段包括"host"、"user"、"remote_path"、"upload_on_save": true - 若用密钥登录:
"ssh_key_file"必须填绝对路径(Linux/macOS 如/home/you/.ssh/id_rsa,Windows 如C:/Users/You/.ssh/id_rsa),且权限为600 - 右键菜单不出?确认已通过
Project → Add Folder to Project加载项目,并重启 Sublime Text —— 否则插件 GUI 不注册
真正容易被忽略的是:Sublime 没有文件系统监听能力,所谓“保存即上传”只是响应 on_post_save_async 事件,它不感知远程文件变更,也不做冲突检测或增量 diff,传的就是当前文件的完整副本。路径映射全靠 remote_path + 本地相对路径推导,一旦本地结构和远程不一致,就可能传错位置。


















