Sublime Text远程编辑需插件、项目结构、配置文件三者严丝合缝:必须用Project→Add Folder to Project添加本地空文件夹,安装SFTP-Next并重启,sftp-config.json须严格命名、置于项目根目录、remote_path以/开头、ssh_key_file支持~展开;upload_on_save生效需文件属已保存项目且路径匹配remote_path;rsub与SFTP不可混用。

Sublime Text 远程编辑不是“连上就行”,而是必须让插件、项目结构、配置文件三者咬合严丝合缝,否则右键没菜单、保存不上传、路径总错位——这些不是操作慢,是根本没进系统。
为什么右键没有 SFTP 菜单
这不是插件没装好,是 Sublime 根本没把当前目录识别为“可映射的远程项目”。它只响应一种操作路径:
- 必须通过 Project → Add Folder to Project 把本地空文件夹加进项目,且该文件夹要出现在侧边栏最顶层
- 右键对象只能是那个文件夹图标本身,不能是里面某个
.py文件,也不能是侧边栏空白处 - Sublime Text 4(Build 41xx+)必须安装
SFTP-Next,原版SFTP插件会直接报ImportError: No module named 'urllib3' - 装完插件后必须重启 Sublime Text,否则 Project 菜单里压根不会出现 SFTP 相关项
sftp-config.json 必须满足的四个硬性条件
这个文件不是手动创建的全局配置,而是插件唯一认的“准入凭证”,错一个就静默失效:
- 文件名必须严格为
sftp-config.json(大小写敏感,不能带空格或下划线) - 必须放在你通过 Add Folder to Project 加入的那个本地文件夹根目录下
-
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/main.py编辑,就不会上传) - 默认超时是 3 秒,网络抖动或服务器响应慢时会静默失败;建议显式加
"timeout": 10 - 上传后远程权限变成
600?得加"default_permissions": "644",否则 Web 服务可能无法读取
别把 rsub 和 SFTP 混用
rsub 是另一套机制:远程运行 rsub,SSH 带 -R 端口转发,本地打开的是实时管道流,保存直接写回远程磁盘——它完全不走 upload_on_save,也不读 sftp-config.json。
混用后果很直接:刚用 rsub 改完保存,下一秒就被 SFTP 的自动上传覆盖掉;或者 rsub 打开的文件被 Git 同步更新了,本地却毫无感知。
真要选,就只用一套:调试训练脚本这种“改一行立刻验证”的场景,rsub 更轻量;需要完整项目结构映射、多文件协同、权限可控的长期开发,SFTP-Next + upload_on_save 更稳。


















