sublime text 本身不支持文件同步,所有“自动上传”能力都来自插件,目前真正可用且维护活跃的只有 sftp(v3.16+);其他带 ftp/sync 名称的插件已失效或仅支持本地映射。

Sublime Text 本身不支持文件同步,所有“自动上传”能力都来自插件,目前真正可用且维护活跃的只有 SFTP(v3.16+)一个选项;其他名字带 FTP/Sync 的插件基本已失效或仅限本地路径映射。
为什么 SFTP 是唯一靠谱的选择
Sublime Text 4 彻底移除了 Python 2 支持,而旧版 SFTP 插件、FTPSync、SublimeSimpleSync 等依赖 Python 2 的插件在 ST4.4107 之前会直接报 ImportError: No module named urllib2,菜单都不显示。目前唯一能稳定运行的是作者重写的 Python 3 版本 SFTP(v3.16+),它通过 Package Control 安装、适配 SSH 密钥、支持 upload_on_save 和远程命令执行,其余插件要么停止更新,要么只做本地路径拷贝(如 SublimeSimpleSync 的 "type": "local" 模式根本没走网络)。
- 别试 FTPSync:GitHub 最后更新是 2018 年,ST4 下无法加载
- SublimeSimpleSync 不是 SFTP:它的
"type": "local"配置只是把本地 A 文件夹复制到本地 B 文件夹,和服务器无关 - SideBarEnhancements + FileZilla 只是快捷方式:右键调起 FileZilla,不等于集成,也无法触发“保存即传”
SFTP 插件必须满足的三个硬性条件
装上不等于能用。缺一不可:
- 必须用
Package Control安装,手动丢 .sublime-package 到Packages/目录会因路径解析失败静默退出 - Sublime Text 版本必须 ≥
4.4107(低版本在 TLS 握手阶段可能抛ssl.SSLError) - 服务器必须启用 SFTP(不是 FTP),且你的账号对
remote_path有写权限 —— 先在终端跑sftp user@host确认能登录并cd进目标目录
配置 sftp-config.json 容易填错的关键字段
右键项目根目录 → SFTP: Setup Server 生成的 JSON 文件里,这几个字段写错会导致上传成功但服务不可用,或者根本不动:
-
"host":只填域名或 IP,不要加ftp://或sftp://前缀 -
"remote_path":必须是绝对路径,以/开头,比如"/var/www/html",写成"www"或"./www"会上传到用户 home 目录下 -
"ssh_key_file":比"password"更安全,路径用"~/.ssh/id_rsa"即可,不用展开为绝对路径 -
"upload_on_save":设为true才触发自动上传;但若你常写未完成的模板,建议先关掉,用快捷键手动传 -
"file_permissions"和"dir_permissions":PHP 文件传上去是 644 才可读,目录需 755,否则 500 错误不报权限问题,只报“No input file specified”
上传后页面 500 或样式丢失?先查这三件事
上传成功不代表部署成功。常见真因不在插件,而在服务器环境:
- PHP 脚本执行失败?检查 SELinux 是否拦截:
ausearch -m avc -ts recent | grep sftp,看到 denied 就得setsebool -P httpd_can_network_connect 1 - CSS/JS 404?确认
ignore_regexes没误删"*.css"或"*.js",尤其注意大小写("*.CSS"不匹配style.css) - 改了 JS 却没生效?浏览器缓存或服务器 OPcache 没清,插件管不了这个,得手动
SFTP: Execute Command运行sudo systemctl reload php-fpm或opcache_reset()
真正的难点从来不在“怎么传”,而在“传完之后谁来保证它能跑”。SFTP 只负责搬运字节,Web 服务上下文、权限模型、缓存策略、SELinux 策略,全得你自己兜底。











