sublime text 不支持直接远程打开文件,因 subl 命令仅解析本地路径和 file:// url,不识别 ssh uri;远程编辑需依赖 sftp(同步)或 rsub(反向代理),二者均非会话级远程工作区。

Sublime Text 本身不管理远程项目,它只管理本地文件路径;所谓“远程编辑项目”,实际是靠 SFTP 插件模拟同步,或靠 rsub 实现反向代理打开——两者都不等于 VS Code 的 Remote-SSH 那种会话级远程工作区。
为什么不能直接用 subl user@host:/path 打开远程文件
subl 命令只识别本地路径和 file:// URL,遇到 user@host:/path 这类 SSH URI 会静默失败或报 Unable to parse path。这不是配置问题,是 Sublime 内核根本不解析主机前缀。
- 所有“远程打开”必须绕过这个限制:要么把文件拉到本地(
SFTP),要么让远程命令触发本地 Sublime(rsub) - 别在终端里反复试
subl user@server:/var/www/index.php,只会浪费时间 - 如果你看到空白窗口或没反应,基本就是这个原因
SFTP 插件配置必须满足三个硬条件
插件装了 ≠ 能用。能跑起来的关键是项目绑定、配置位置、SSH 认证三者同时到位。
-
sftp-config.json必须放在项目根目录下(即.sublime-project所在目录),不能随便丢在桌面或用户主目录 -
remote_path必须写绝对路径,比如"/var/www/html";写"~/project"会被当字面量处理,最终访问的是/home/user/~/project - 改完配置后必须重启 Sublime Text——插件不热重载,不重启就永远读不到新配置
- 如果用私钥认证,
ssh_key_file也得写绝对路径,~/.ssh/id_rsa不生效,得写成/home/deploy/.ssh/id_rsa
rsub 编辑时 upload_on_save 完全无效
rsub 和 SFTP 是两套互不兼容的机制:rsub 编辑的文件保存直接写回远程磁盘,不走本地中转,也不触发任何 SFTP 钩子。
- 你在
sftp-config.json里写的"upload_on_save": true对rsub打开的文件毫无作用 - 不要在同一个项目里既用
rsub又启用upload_on_save,否则刚保存完就被 SFTP 覆盖掉 -
rsub没有“自动下载最新版”逻辑——打开即是最新的,但远程其他进程改了文件(比如git pull),本地不会感知 - 远程执行
rsub前,必须已建立带-R 52698:localhost:52698的 SSH 连接,且本地rsub插件状态栏显示rsub: ready
最易被忽略的一点:SFTP 和 rsub 都不是真正的远程工作区,它们不共享进程、环境变量或 shell 状态;你无法在 Sublime 里直接运行 ssh 命令或调用远程 node,所有“远程感”都来自文件同步或管道转发——这点决定了它没法替代终端+编辑器组合的灵活性。











