只有SFTP插件(v3.16+)适配Sublime Text 4,因其重写为纯Python 3版本,而FTPSync等旧插件依赖已移除的urllib2,启动即报ImportError且菜单不显示。

Sublime Text 本身不支持自动上传,唯一可靠路径是安装并正确配置 SFTP 插件(v3.16+),其他带 FTP/Sync 名字的插件在 Sublime Text 4 下基本失效或根本不走网络。
为什么只有 SFTP(v3.16+) 能用
Sublime Text 4 彻底移除 Python 2 支持,而 FTPSync、SublimeSimpleSync 等旧插件依赖 urllib2,一启动就报 ImportError: No module named urllib2,菜单都不显示。SFTP 插件作者已重写为纯 Python 3 版本,适配 ST4.4107+,支持 SSH 密钥、upload_on_save、远程命令执行等核心功能。
别浪费时间试这些:
-
FTPSync:GitHub 最后更新是 2018 年,ST4 下加载失败 -
SublimeSimpleSync:即使配置"type": "ftp",实际只做本地文件夹复制 -
SideBarEnhancements + FileZilla:右键只是调起外部程序,无法触发“保存即传”
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-package到Packages/目录会静默退出 - 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):窗口失焦自动保存,配合upload_on_save实现“改完切走就同步”
容易被忽略的权限和大文件问题
PHP、HTML 文件传上去要是 644 才能被 Web 服务读取,目录得是 755;否则页面 500 或 403。可在配置里显式加:
"file_permissions": "644", "dir_permissions": "755"
大文件(>5MB)上传时 Sublime UI 会卡顿,甚至假死。务必在 ignore_regexes 里排除非源码文件,例如:
"*.log""*.min.js""node_modules/""dist/"
否则每次保存一个 JS 文件,它都试图把整个 dist/ 夹子推上去。

















