sublime text 本身不支持直接 ssh 远程编辑,仅可通过 rsub(反向端口转发代理)或 sftp 插件(文件同步)实现,二者机制不同、不可混用;subl user@host:/path 必然失败,因其内核只解析本地路径和 file:// url,完全忽略 ssh uri。

Sublime Text 本身不支持直接 SSH 远程编辑,所谓“远程编辑”只有两个实际可用路径:用 rsub 做反向端口转发代理,或用 SFTP 插件做文件同步——二者机制完全不同,不能混用,选错就打不开、不保存、不同步。
为什么 subl user@host:/path 一定失败
Sublime 的 subl 命令只解析本地路径和 file:// URL,完全忽略 SSH URI 格式。你执行它,要么报 Unable to parse path,要么静默打开空白窗口。这不是插件没装,是 Sublime 内核根本不处理主机名前缀。
所有能“远程编辑”的方案,本质都是绕过这个限制:
- 把远程文件拉到本地再打开(
SFTP插件) - 让远程命令触发本地 Sublime 打开(
rsub)
rsub 必须配对启动且权限对齐
rsub 的工作链是:远程终端执行 rsub file.py → 通过 SSH 反向隧道 → 本地 Sublime 接收并打开。任意一环断掉,就卡在“无响应”或 Connection refused。
- 远程必须先运行
ssh -R 52698:localhost:52698 user@your_local_ip(注意是连你本地机器的 IP,不是localhost) - 本地 Sublime 必须已安装
rsub插件,且状态栏右下角显示rsub: ready - 远程执行
rsub时,当前用户需有目标文件读权限;若编辑/var/log/nginx/access.log,得用sudo rsub /var/log/nginx/access.log,否则内容为空 -
ssh_key_file要写绝对路径,比如~/.ssh/id_rsa不生效,得写成/home/user/.ssh/id_rsa
SFTP 插件的 remote_path 不支持波浪号
你在 sftp-config.json 里写 "remote_path": "~/project",SFTP 插件不会做 shell 展开,而是字面量拼接,最终尝试访问服务器上的 /home/user/~/project,必然报错或列出空目录。
- 必须写绝对路径,例如
"/home/deploy/project"或"/var/www/html" - 不确定主目录在哪?登录服务器后执行
pwd或echo $HOME确认 - 右键没 SFTP 菜单?说明 Sublime 没认出项目结构:必须通过
Project → Add Folder to Project把本地文件夹加进项目,且该文件夹要出现在侧边栏最顶层 - Sublime Text 4(Build 41xx)必须装
SFTP-Next,原版SFTP会报ImportError: No module named 'urllib3'
rsub 和 SFTP 保存行为完全不兼容
rsub 编辑的文件,保存就是实时写回远程磁盘;而 SFTP 是先存本地、再上传。两者底层机制不同,混用会导致覆盖冲突。
-
upload_on_save对rsub打开的文件完全无效 - 不要在同一个项目里既用
rsub又启用SFTP的sync_up_on_save -
rsub没有“刷新远程文件”动作,打开即最新;但也没法自动感知远程其他进程改的文件(比如git pull后没手动重开) - 如果远程文件被
chmod改了权限,rsub仍能打开,但保存时若权限不足会报Permission denied
真正容易被忽略的是:rsub 依赖 SSH 连接生命周期,一旦终端退出或网络中断,编辑会断连;而 SFTP 的 upload_on_save 在超时或权限错误时可能静默失败,表面看保存成功,实则远程文件未更新。











