sublime text 需通过 sftp-next 插件实现远程编辑,st4 不兼容原版 sftp;项目须添加至侧边栏顶层,右键文件夹图标配置;sftp-config.json 必须自动生成、命名准确、remote_path 以 / 开头;upload_on_save 生效需满足项目绑定、路径匹配、配置位置正确及超时与权限等四条件。

Sublime Text 本身不支持远程编辑,必须靠 SFTP 插件(或 SFTP-Next)实现;ST4 用户若装错插件版本,会直接报 ImportError: No module named 'urllib3',根本进不了配置环节。
右键没 SFTP 菜单?先确认项目结构和触发路径
这不是插件没装好,是 Sublime 没把当前目录识别为“可映射的远程项目”。
- 必须通过 Project → Add Folder to Project 把本地文件夹加进项目,且该文件夹要出现在侧边栏最顶层(不能嵌套在其他文件夹里)
- 右键对象只能是那个文件夹图标本身——不是里面某个
.js文件,也不是侧边栏空白处 - ST4(Build 41xx+)必须安装
SFTP-Next,原版SFTP不兼容,装了也白装 - 装完插件后务必重启 Sublime Text,否则 Project 菜单里压根不会出现 SFTP 相关项
sftp-config.json 必须严格满足四条硬规则
这个文件不是手动创建的全局配置,而是插件只读取“右键 → Map to Remote…”后自动生成在项目根目录下的唯一凭证。
- 文件名必须是
sftp-config.json(大小写敏感,SFTP-config.json或sftp_config.json都无效) -
remote_path必须以/开头(如"/var/www/html/"),结尾也建议加/,否则路径拼接会偏移 -
ssh_key_file支持~展开(如"~/.ssh/id_rsa"),但不识别$HOME或其他环境变量 - 同时写了
password和ssh_key_file?SSH 层直接拒绝,错误只显示Authentication failed,无具体提示
upload_on_save 不生效?检查这四个隐性条件
开关开着 ≠ 自动上传,它依赖一组隐性上下文,缺一不可。
-
upload_on_save必须放在配置文件根层级,不能嵌套在files或sync_down_on_open下面 - 当前文件必须属于已保存的项目(即存在
.sublime-project文件),且该文件路径需能被remote_path规则覆盖(比如配了"/var/www/html/",但你在/src/index.js编辑,就不会上传) - 网络抖动或服务器响应慢时,默认 3 秒超时会导致静默失败;可在配置中加
"timeout": 10提高容错 - 上传后远程权限变成
600?得显式设"default_permissions": "644",否则 Web 服务可能无法读取
最容易被忽略的是:配置文件里写的 remote_path 和你实际编辑的文件路径之间,必须存在明确的父子关系。哪怕只差一个 / 或多一层目录,upload_on_save 就会彻底静默失效,连错误日志都不打。别猜,用 ls -la 对一遍路径再下手。











