sftp-next 是 sublime text 4 下唯一支持 upload_on_save 的插件,因其纯 python 3 编写、适配 st4.4107+,而 ftpsync 等旧插件因依赖已移除的 urllib2 无法运行。

Sublime Text 本身不支持保存即同步,upload_on_save 能生效的前提是:你必须用 Package Control 安装 SFTP-Next(v3.16+),其他叫 FTP/Sync 的插件在 ST4 下基本失效或根本不会响应保存事件。
为什么 SFTP-Next 是唯一可靠选择
Sublime Text 4 彻底移除 Python 2 支持,而 FTPSync、SublimeSimpleSync 等旧插件依赖已删除的 urllib2,一启动就报 ImportError: No module named urllib2,菜单都不显示。SFTP-Next 是纯 Python 3 重写版本,适配 ST4.4107+,完整支持 upload_on_save、SSH 密钥、远程命令执行等核心功能。
别试 FTPSync:它只响应手动命令(如 Ctrl+Alt+U),设计上就不监听保存事件
别手动丢 .sublime-package 到 Packages/ 目录:会静默退出,必须用 Package Control: Install Package
别用 sftp3:它是社区维护的旧分支,ST4 下兼容性不稳定,官方推荐只用 SFTP-Next
sftp-config.json 必须填对的字段
右键项目根目录 → SFTP: Setup Server 生成的配置里,这几个地方填错会导致“看似上传成功,但文件没到目标位置”或“完全没反应”:
"host":只填域名或 IP,比如 "example.com" 或 "192.168.1.100",不要加 sftp:// 或 ftp://"remote_path":必须是绝对路径,以 / 开头,比如 "/var/www/html";写成 "www" 或 "./www" 会传到用户 home 目录下"ssh_key_file":比明文密码安全,填 "~/.ssh/id_rsa" 即可,不用展开成 /Users/xxx/.ssh/id_rsa"upload_on_save":必须设为 true 才能自动上传;但如果你常写未完成的模板,建议先设为 false,用右键 SFTP: Upload File 手动传
upload_on_save 生效的三个硬性前提
光写 "upload_on_save": true 不够,以下三点缺一不可:
必须通过 Package Control 安装 SFTP,手动安装会失败Sublime Text 版本 ≥ 4.4107(低版本在 TLS 握手阶段可能抛 ssl.SSLError)
服务器必须启用 SFTP(不是 FTP),且你的账号对 remote_path 有写权限 —— 先在终端跑 sftp user@host,确认能登录并 cd 进目标目录
另外两个实用配置也建议加上:"save_before_upload": true(避免忘了保存就传)、"save_on_focus_lost": true(改完切走就同步,需加到 Preferences: Settings - User 中)
容易被忽略的是:当前文件必须属于已配置的 SFTP 项目 —— 即你得通过 Project → Save Project As… 保存过一个 .sublime-project 文件,并在里面声明了 sftp 配置块;单纯打开单个文件不会触发同步。











