必须在单个sftp-config.json中用唯一name字段定义多个服务器连接块,每个块需完整配置host、user等字段且不能共用认证信息;切换服务器须先remove mapping再map to remote。

多个服务器配置必须用 name 字段区分,不能靠多个 sftp-config.json 文件
Sublime Text 的 SFTP 插件不支持一个项目目录下放多个 sftp-config.json 文件——它只读取一个,且只认文件名严格为 sftp-config.json(全小写、无空格、无额外后缀)。想管多台服务器,唯一合法方式是在**单个配置文件里用 name 字段定义多个连接块**。
常见错误是手动建 sftp-config-1.json、sftp-config-prod.json,结果插件完全无视,连报错都没有。
-
name必须是字符串,且每个块的值不能重复(如"dev"、"staging"、"prod") - 每个块需完整包含
host、user、remote_path等必填字段,不能复用上一个块的值 - 认证字段(
password或private_key/ssh_key_file)必须各自独立填写,混用或遗漏会导致对应服务器连接失败 - 插件不会自动选中某个
name;切换服务器靠右键 →SFTP/FTP → Browse Server,从弹出列表里点选
右键“Browse Server”才能看到全部 name 列表,Map to Remote 只绑定当前 name
很多人以为右键项目根目录 → Map to Remote… 能一次绑定所有服务器,其实它只把当前激活的 name 块和本地目录做映射。其他 name 仍存在配置里,但不会触发 upload_on_save,也不会出现在侧边栏同步上下文中。
真正管理多个服务器,得靠 Browse Server:右键任意位置(只要项目已加载)→ SFTP/FTP → Browse Server,弹窗里会列出所有 name 对应的服务器,点击即可浏览远程文件、手动上传/下载、甚至直接编辑并保存回对应服务器。
- 只有被
Map to Remote绑定的那个name才支持upload_on_save自动上传 - 未绑定的
name仍可手动操作,但无法“保存即上传”,适合临时调试或一次性同步 - 如果
Browse Server列表为空,先确认sftp-config.json在项目根目录、语法合法、且至少有一个name字段
upload_on_save 只对当前绑定的 name 生效,切服务器要重新 Map
你不能指望改个配置里的 name 字段就切换自动上传目标——upload_on_save 的行为完全绑定在“本地目录 ↔ 某个 name”这一对关系上。换服务器必须显式解绑再重绑。
解绑方法:右键项目根目录 → SFTP/FTP → Remove Mapping;之后再右键 → Map to Remote…,插件会再次弹出配置选择框,让你挑另一个 name。
- 不执行
Remove Mapping就直接Map to Remote…,插件默认覆盖原绑定,不会提示冲突 - 如果同时需要多套自动上传逻辑(比如
/src推 dev、/dist推 prod),得拆成两个独立 Sublime 项目,分别绑定不同name - 配置里写
"upload_on_save": true是布尔值,不是字符串;嵌套在某个name块里才对该服务器生效
配置文件里 name 块之间不能有逗号分隔,JSON 语法容易踩坑
多个 name 块写在同一个 sftp-config.json 里时,格式不是数组,而是顶层并列对象。新手常照搬数组写法加方括号或逗号,导致整个配置静默失效。
正确结构是:{ "dev": { ... }, "staging": { ... }, "prod": { ... } } —— 三个对象平级,用花括号包裹,块之间**不加逗号**,最外层仍是单个 JSON 对象。
- 错误示例:
[{"name":"dev",...}, {"name":"staging",...}]→ 插件不识别数组,直接忽略 - 错误示例:
{"dev":{...}, "staging":{...},}→ Windows 或旧版 Sublime 可能因末尾逗号解析失败 - 用在线 JSON 校验工具(如 jsonlint.com)粘贴配置检查语法,比靠肉眼更可靠
- 修改配置后必须重启 Sublime Text 或至少关闭再重开项目,否则新
name不会出现在Browse Server列表里
Remove Mapping 就去 Map to Remote…,旧绑定还在后台挂着,新配置看似生效,实则上传发往了错误服务器。这点没有日志、不报错,只能靠你心里记着当前绑定的是谁。











