Sublime怎么连服务器 Sublime怎么使用SFTP同步代码【远程】

6次阅读

Sublime怎么连服务器 Sublime怎么使用SFTP同步代码【远程】

右键没看到 SFTP 菜单?先确认项目和插件状态

sublime Text 安装完 SFTP 插件后,SFTP 菜单项不会自动出现——它只在有有效项目(Project)且侧边栏已加载文件夹时才激活。常见现象是:右键空白处或未打开任何文件夹时,菜单里压根没有 SFTP 选项。

  • 必须通过 Project → Add Folder to Project 添加本地目录,让该文件夹出现在侧边栏顶层
  • 右键操作对象只能是侧边栏中**已显示的文件夹图标**,不是文件、不是空白处、也不是“无项目”状态下的任意位置
  • 插件必须是官方版本(作者 wbond),名字带 SFTP 但非 wbond 发布的仿制品大概率不兼容
  • 安装后务必重启 sublime text,否则插件可能未完成初始化

sftp-config.json 放哪、怎么写、为什么不能拼错

配置文件不是全局生效,而是严格绑定到当前项目根目录。插件只会读取你右键映射的那个文件夹下名为 sftp-config.json 的文件——大小写、短横线、扩展名缺一不可,写成 SFTP-config.jsonsftp_config.json 都会静默失败。

  • 生成方式:右键项目文件夹 → SFTP → map to Remote,它会自动创建并打开该文件
  • remote_path 必须以 / 开头且结尾也推荐加 /(如 "/var/www/html/"),否则路径拼接可能出错
  • ssh_key_file 支持 ~ 展开(如 "~/.ssh/id_rsa"),但不识别 $HOME 或其他环境变量
  • 用密钥登录时,password 字段必须完全删除,不能留空字符串,否则插件仍尝试密码认证

上传失败却没报错?打开控制台看真实错误

保存文件后没上传,弹窗提示又只有模糊的 Permission denied 或直接无声失败——这不是网络问题,而是插件底层调用 OpenSSH 时被拦截了,必须看原始日志才能定位。

  • Ctrl+Shift+PmacosCmd+Shift+P)→ 输入 SFTP: Show console 回车,所有 ssh/sftp 命令和错误都会实时打印
  • 常见真因:ssh_key_file 权限不是 600linux/macOS 下 chmod 600 ~/.ssh/id_rsa)、远程 sshd_config 关了 PubkeyAuthentication yesremote_path 目录对当前用户不可写
  • 即使你在终端能免密 ssh 登录,SFTP 插件也不复用 ssh-agent,所以别指望它“继承”你的登录状态

sync_down_on_open 和 upload_on_save 不是万能同步开关

这两个配置看着像“双向实时同步”,实际只是单向触发逻辑,没有锁、没有版本比对、也没有冲突解决能力。多人协作或服务端被其他方式修改时,极易覆盖内容。

  • sync_down_on_open 只在你双击打开文件时拉一次远程最新版,之后编辑全程只走本地 → 远程,不检查中间是否又被改过
  • upload_on_save 不校验上传结果,失败了也不会回滚或提醒,适合开发环境调试,但绝不该用于生产部署
  • 安全底线:开启 "confirm_overwrite_newer": true,当本地文件比远程旧时会弹窗提醒;配合 "ignore_regexes" 排除 .gitnode_modules 等非代码文件

配置真正起效的关键,从来不是字段填得全不全,而是 sftp-config.json 是否在正确路径、权限是否合规、以及你有没有真的去看 SFTP: Show Console 里的那几行报错。

text=ZqhQzanResources