Sublime Text 本身不支持纯命令行远程同步,其“远程同步”实为本地编辑后通过SFTP插件上传至服务器;所有操作(含upload_on_save)均在本地GUI环境中执行,远程只需SSH服务支持SFTP,无需额外FTP服务或服务器端Sublime进程。

Sublime 本身不支持纯命令行远程同步
Sublime Text 是桌面 GUI 应用,没有原生命令行接口(CLI),也不存在所谓“在 Linux 无图形界面下运行 Sublime 并同步”的操作路径。你看到的“Sublime 远程同步”,本质是本地 Sublime(Windows/macOS/Linux 桌面端)通过 SFTP 插件上传文件到远程服务器——sftp 插件运行在你的本地机器上,不是远程 Linux 上的进程。
如果你当前在无图形界面的 Linux 服务器上(比如 SSH 登录后只有 bash),想实现“类似 Sublime 的编辑+保存即同步”效果,必须换工具:要么用 vim/nano 配合 rsync 或 scp 手动触发;要么在本地用 Sublime + sftp 插件,远程只当存储/执行环境。
sftp 插件的 upload_on_save 不会在服务器上运行
upload_on_save 是 sftp 插件在本地 Sublime 中监听保存事件后发起的一次 SFTP 上传请求,整个过程依赖本地 Sublime 实例、网络连接、SSH 认证和远程 SFTP 服务(通常是 OpenSSH 的 sftp-server,无需额外装 vsftpd)。它不会、也不能在远程服务器的 shell 里“启动一个 Sublime 后台进程”来监听文件变化。
常见误解是以为配置了 "type": "sftp" 就等于“把 Sublime 部署到了服务器”。实际只是告诉本地插件:“下次保存时,请用 SFTP 协议把这文件发到 host 的 remote_path”。
- 远程服务器只需开启 SSH 服务(
sshd),默认已支持 SFTP - 不需要安装 vsftpd、pure-ftpd 等 FTP 服务——它们无关且可能引入权限冲突
-
ssh_key_file路径必须是本地路径(如~/.ssh/id_rsa),不是服务器上的路径 - 若用密码登录,
password字段明文写在sftp-config.json中,注意权限(chmod 600该文件)
真要在无 GUI 的 Linux 上做自动同步,得用 rsync + inotifywait
如果你坚持“在服务器本机完成编辑并自动同步到其他位置”(比如开发机 → 测试服务器),那方案和 Sublime 无关,而是标准 Linux 工具链:
例如,在远程服务器上监控 /var/www/myapp 目录变化,并实时推送到另一台机器:
inotifywait -m -e close_write,move,create,delete /var/www/myapp | while read events; do rsync -avz --delete /var/www/myapp/ user@192.168.1.100:/var/www/staging/ done
但注意:
- 这和 Sublime 完全无关,是纯服务器端脚本
-
inotifywait需要安装inotify-tools包 - SSH 免密登录必须提前配好(用
ssh-keygen+ssh-copy-id) - 别用 root 运行,避免权限污染;建议用普通用户 +
sudo rsync配合 visudo 白名单
容易被忽略的路径与权限陷阱
很多人卡在“保存后没上传”,问题往往不出在插件,而在路径或权限细节:
-
sftp-config.json必须放在项目根目录,且文件名**严格为小写sftp-config.json**(不是SFTP-config.json或sftp_config.json) -
remote_path结尾**不要加斜杠**("/var/www"✅,"/var/www/"❌),否则上传后路径会变成/var/www//file.js - 本地文件路径必须属于该项目文件夹内——如果用 Sublime “Open File” 直接打开远程路径(如
sftp://user@host/var/www/index.php),upload_on_save默认不生效,需手动右键 → “SFTP → Upload File” - 远程目标目录需对
user可写;常见错误是chown root:root /var/www后忘了chown -R user:user /var/www
真正的“毫秒级同步”不存在;SFTP 上传受网络延迟、SSH 密钥交换、文件大小影响,200ms–2s 是常态。追求亚毫秒响应,只能换方案:SSHFS 挂载远程目录为本地磁盘,或改用 VS Code Remote —— Sublime 的定位就是轻量编辑器,不是远程开发平台。


















