remotesublime(即rsub)是通过ssh反向端口转发实现的远程文件代理方案,非sftp插件替代品:需远程运行rsub、本地安装rsub插件并配置-r端口映射,三者缺一不可;其保存直接写回远程,不触发upload_on_save,机制与sftp完全不同。

RemoteSublime 是什么,它和 SFTP 插件根本不是一回事
RemoteSublime(即 rsub)不是 Sublime Text 的远程连接功能,也不是 SFTP 插件的替代品——它是靠 SSH 反向端口转发把远程文件“拉”到本地 Sublime 打开的代理方案。你不能用它直接编辑 ssh://user@host:/path 这种 URI,Sublime 本身不解析 SSH 地址;subl user@host:/path 会静默失败或打开空白窗口。
真正起作用的是:远程运行 rsub(需提前在服务器装好),本地装好 rsub 插件,并在 SSH 连接时加 -R 52698:localhost:52698 参数做端口映射。只有这三者同时到位,ssh -R 52698:localhost:52698 user@host 登录后,在远程终端执行 rsub /path/to/file,本地 Sublime 才会弹出对应文件。
- 远程
rsub必须可执行(常见路径:/usr/local/bin/rsub或~/bin/rsub),且权限为755 - 本地
rsub插件必须启用(Preferences → Package Settings → rsub → Settings),默认监听端口是52698,别被防火墙拦住 - SSH 连接必须带
-R参数,用~/.ssh/config配置 alias 更可靠,比如:Host myserver HostName server.example.com User deploy RemoteForward 52698 localhost:52698
为什么 upload_on_save 在 RemoteSublime 下完全无效
因为 RemoteSublime 不走文件上传流程——它把远程文件内容通过 SSH 管道传给本地 Sublime 编辑,保存时再原路写回远程磁盘。整个过程不经过本地磁盘中转,也不触发 SFTP 插件的任何钩子。你在 sftp-config.json 里写的 "upload_on_save": true 对 rsub 打开的文件毫无作用。
也就是说:rsub 编辑的文件,保存就是实时写入远程路径;而 SFTP 插件映射的目录,保存是先存本地、再上传。两者底层机制完全不同,混用会导致覆盖冲突。
- 不要在同一个项目里既用
rsub又启用 SFTP 的sync_up_on_save,否则可能刚保存完就被 SFTP 覆盖掉 -
rsub没有 “下载最新版” 动作,打开即是最新的;但也没法自动同步远程其他进程改的文件(比如 git pull 后没刷新) - 如果远程文件被 chmod 改了权限,
rsub仍能打开,但保存时若权限不足会报错:Permission denied
RemoteSublime 的真实延迟来源和性能瓶颈
所谓“毫秒级响应”只存在于局域网或极低延迟链路;实际延迟主要来自三块:SSH 加密/解密开销、TCP 包往返时间(RTT)、以及远程 rsub 进程读写文件的 I/O 延迟。公网环境下,一次保存常在 100–800ms,远不如本地编辑顺滑。
尤其注意:如果远程服务器负载高、磁盘慢(比如 HDD 或 NFS 挂载),rsub 保存卡顿会非常明显,且无进度提示——你只能干等光标变回就绪状态。
- 别指望
rsub支持大文件(>10MB)流畅编辑;Sublime 会卡死或崩溃,建议用vim或less处理日志类文件 - 远程
rsub进程一旦退出(比如 SSH 断连、kill掉),本地 Sublime 就无法再保存,但界面不会报错,只会悄悄失败 - Mac 上若启用了 SIP,
rsub可能无法绑定端口,需临时关闭或换用非特权端口(如25269),并在插件设置里同步修改
哪些场景下该果断放弃 RemoteSublime
当你需要编辑的不是单个文件,而是频繁切换多个分散路径、依赖项目级构建工具(如 webpack/watch)、或需配合调试器断点时,rsub 就力不从心了。它本质是“远程文件代理”,不是“远程开发环境”。
真要稳定协作或复杂调试,优先考虑 VS Code Remote-SSH 或 SSHFS + local Sublime。前者提供完整调试器集成,后者让 Sublime 当纯本地编辑器,文件系统层面挂载远程路径,upload_on_save 等逻辑照常生效。
- 多人共用同一台服务器且各自 home 目录隔离?
rsub无法跨用户共享 session,每个用户得单独配 SSH forwarding - 远程路径含中文或特殊符号(如空格、括号)?
rsub解析容易出错,报Invalid argument或直接忽略文件 - 服务器禁用了
AllowTcpForwarding?那-R参数直接被 SSH server 拒绝,rsub根本跑不起来











