Sublime Text 本身不支持远程连接,所谓“连上服务器”只是本地编辑+自动上传的模拟流程;能运行的关键是项目已绑定、sftp-config.json由右键自动生成于项目根目录、SSH认证正确三者缺一不可。

Sublime Text 本身不支持远程连接,所谓“连上服务器”只是本地编辑 + 自动上传的模拟流程;能跑起来的关键不是插件装了没,而是项目已绑定、sftp-config.json 由右键自动生成于项目根目录、SSH 认证正确,三者缺一不可。
怎么确认该装 SFTP 还是 SFTP-Next
打开 Help → About Sublime Text 看 Build 号:
- Build 41xx(如 4143)→ 必须装
SFTP-Next;装原版会报ImportError: No module named 'urllib3',菜单直接消失 - Build 3xxx(如 3211)→ 只能装作者为
wbond的原版SFTP;搜到sftp-client或FTPSync都是错的 - 装完必须重启 Sublime Text,否则
Project菜单里看不到 SFTP 项,右键也无响应
sftp-config.json 放哪、怎么写才生效
这个文件不是全局配置,只对“右键映射的那个本地文件夹”起作用;名字、路径、字段错一个字符就静默失效,不报错也不提示:
- 文件名必须是
sftp-config.json(全小写、无空格、无额外后缀),放在你右键操作的本地项目根目录下 -
host填 IP 或域名,不能带ssh://;端口用单独的port字段,别拼在host后面 -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移 - 密钥登录时删掉
password字段,用private_key(ST3/ST4 均支持),值必须是绝对路径:"/home/you/.ssh/id_rsa"或"C:/Users/You/.ssh/id_rsa";相对路径、~展开、权限非 600 都会导致Permission denied (publickey)
upload_on_save 不触发?检查三个隐性前提
开了 "upload_on_save": true 却没上传,不是插件坏了,而是 Sublime 根本没把当前文件识别为“该同步的文件”:
- 当前文件必须在已映射的项目文件夹内及其子目录下;打开桌面一个
index.js,哪怕同目录有sftp-config.json,也不会上传 - 必须通过侧边栏右键本地文件夹 →
SFTP → Map to Remote…(或Setup Server)完成绑定;手动新建sftp-config.json不会自动激活映射 -
upload_on_save是布尔值,必须写true,不能写"true"字符串,也不能嵌套在files或sync_down_on_open下面 - 网络抖动或服务器响应慢时,默认 3 秒超时会导致静默失败;可在配置里加
"timeout": 10提高容忍度
为什么右键没有 SFTP 菜单
插件只在「有有效项目」且「侧边栏显示可映射文件夹」时才激活菜单;它不响应空白处、单个文件、未添加到项目的目录,也不认“打开文件夹”这种临时视图:
- 必须通过
Project → Add Folder to Project把本地目录加进项目,让它出现在侧边栏顶层 - 右键操作对象只能是侧边栏中那个文件夹图标本身,不是里面的文件,也不是空白区域
- 安装的是作者为
wbond的官方SFTP(ST3)或SFTP-Next(ST4);别选sftp-client或FTPSync - 装完插件后务必重启 Sublime Text,否则
Project菜单里都看不到 SFTP 项
最常被忽略的是:路径匹配依赖 remote_path 和本地文件实际路径的字符串前缀比对,而不是 glob 或正则;比如配了 "remote_path": "/var/www/html/",但你在 /src/app.js 编辑,就不会上传——哪怕物理上它就在那个目录里,只要 Sublime 的路径解析不匹配,就静默跳过。


















