Sublime Text 的 SFTP 插件不支持一键切换服务器,因其设计为“单项目绑定单配置”,仅读取当前打开文件夹下的 sftp-config.json 或 .sublime-project 中的 sftp_config 字段;正确做法是为每个服务器使用独立文件夹并执行右键 Map to Remote...,或在 .sublime-project 的 settings 下定义 sftp_config。

Sublime Text 本身不支持“切换服务器”的快捷按钮或下拉菜单,必须靠手动管理多个 sftp-config.json 配置文件,或改用 .sublime-project 文件隔离不同环境。
为什么不能像 IDE 那样一键切换服务器
SFTP 插件的设计逻辑是“每个项目(或文件夹)绑定一个远程配置”,它不会维护全局服务器列表,也不会缓存多个连接上下文。你看到的“Browse Server”菜单里只显示当前项目所用的配置——哪怕你本地有十个 sftp-config.json,插件也只认当前打开文件夹下的那个。
常见错误现象:File → SFTP → Browse Server 灰掉、点开没反应、或者只连上旧服务器;右键菜单里没有“切换”选项;修改了配置但保存后仍上传到错误路径。
- 根本原因:插件只读取当前项目根目录下的
sftp-config.json(或.sublime-project中嵌套的sftp字段) - 如果你在 Sublime 中打开了多个文件夹,每个文件夹都可能有自己的配置,但彼此不感知
- 不存在“全局服务器管理器”,也没有类似 VS Code 的
Remote-SSH: Connect to Host...命令
正确做法:用不同文件夹 + 独立配置隔离服务器
最稳定、最不易出错的方式,是为每个服务器准备一个独立的本地空文件夹,并在其中生成专属 sftp-config.json。
- 新建本地文件夹,例如
~/projects/staging-server/和~/projects/prod-server/ - 在 Sublime 中分别用
File → Open Folder...打开这两个文件夹(不要同时打开在同一个窗口) - 对每个文件夹单独执行
Right Click → SFTP → Map to Remote...,生成各自的sftp-config.json - 确保每个配置中
"host"、"user"、"remote_path"完全不同,且"upload_on_save": true已启用 - 编辑哪个服务器的文件,就打开对应文件夹的 Sublime 窗口——这是唯一被插件识别的“切换”方式
进阶方案:用 .sublime-project 替代 sftp-config.json
当需要在同一窗口管理多个子项目(比如前端+后端),又不想混用配置时,把 SFTP 配置写进 .sublime-project 更可控,还能避免误删或覆盖 sftp-config.json。
操作步骤:
- 菜单栏
Project → Save Project As...,保存为staging.sublime-project - 用文本编辑器打开该文件,插入
"settings"块(不是顶层字段):
{
"folders": [
{
"path": "."
}
],
"settings": {
"sftp_config": {
"type": "sftp",
"host": "staging.example.com",
"user": "deploy",
"remote_path": "/var/www/staging/",
"upload_on_save": true,
"sync_down_on_open": true
}
}
}
注意:"sftp_config" 是 SFTP 插件约定的 key,不是官方 Sublime 字段;它只在当前 project 文件生效,且优先级高于同目录下的 sftp-config.json。
容易踩的坑:sftp_config 必须放在 "settings" 下,不能直接写在 project 根对象里;如果同时存在 sftp-config.json 和 sftp_config 字段,后者会覆盖前者。
别碰“Setup Server”菜单里的默认配置
菜单 File → SFTP → Setup Server 生成的是全局默认模板,保存路径不可控(常落在 Sublime Text 3/Packages/User/),而且一旦保存,后续所有新映射都会继承它的字段——极易导致不同项目悄悄共用同一份 host 或 path。
真正安全的做法只有两个:
- 永远用
Right Click → SFTP → Map to Remote...(它强制在当前文件夹生成配置) - 或手动创建
.sublime-project并填入sftp_config
多服务器场景下,配置文件的路径、命名、作用域边界比内容本身更重要——稍不注意,改的就不是目标服务器,而是正在调试的测试环境。


















