能,但必须通过 bash -c 中转调用 wsl 的 gcc/g++;sublime 不识别 wsl 可执行文件,需在 build system 中用 bash -c 包裹命令,并设 working_dir 为 ${file_path}。

Sublime 能不能直接调用 WSL 的 gcc/g++?能,但必须走 bash 中转
Sublime 本身不识别 Windows 下的 WSL 可执行文件(比如 gcc 不在 PATH 里),也不能直接运行 /mnt/wsl/... 这类路径。它只能调用 Windows 原生命令或通过 bash -c 启动 WSL 子系统执行编译逻辑。
- Build System 必须用
bash -c包裹命令,例如:{"cmd": ["bash", "-c", "g++ ${file_name} -o ${file_base_name} && ./${file_base_name}"]} -
working_dir设为${file_path},否则 WSL 会默认在用户 home 目录下执行,找不到你的源文件 - 别写成
g++.exe或wsl g++——前者不存在,后者会报command not found - 如果 WSL 默认用户不是你预期的(比如导入后变成 root),
bash -c执行时权限或路径可能异常;建议先运行wsl -d Ubuntu-22.04确认当前登录用户
右键没出现 SFTP 菜单?大概率是项目根本没加载
这不是插件装错了,而是 Sublime 的行为逻辑:SFTP 插件只对「已加入项目的文件夹节点」生效,和“是否打开过该目录”无关。
- 必须通过
Project → Add Folder to Project添加本地目录,不能只用File → Open Folder - 右键对象要是侧边栏中那个带小图标、可展开的**文件夹节点**,不是空白处、不是文件、也不是未映射的根目录
- 配置文件
sftp-config.json必须放在项目根目录,大小写、短横线、扩展名全对,缺一不可 - 重启 Sublime 是必要步骤——尤其 Windows 上,插件注册右键菜单常需重启才生效
上传失败却只弹“Upload failed”?去看控制台真实日志
这个提示毫无信息量,真正原因藏在 SSH 底层交互里。靠猜不如直接看命令流输出。
- 按
Ctrl+Shift+P输入SFTP: Show Console回车,所有连接、认证、put操作和错误都会实时打印 - 常见真因:
Permission denied (publickey)往往不是密钥错,而是ssh_key_file权限不对(Linux/macOS 下必须chmod 600 ~/.ssh/id_rsa) -
Connection timed out多因 WSL 的 SSH server 没开(默认不启动)、或防火墙拦截了端口;检查sudo service ssh status是否 active - 远程路径写成
var/www/html(缺开头/)会导致拼接出错,应写为/var/www/html/
多人协作编辑远程文件,怎么避免本地覆盖别人改的?靠配置,不是靠运气
SFTP 插件没有文件锁,也不比对内容哈希,它就是个单向同步工具。你保存,它就传,不管服务器上是不是刚被别人改过。
- 启用
sync_down_on_open: true:双击打开文件前自动从服务器拉最新版 - 启用
confirm_overwrite_newer: true:若本地修改时间早于远程文件,保存时会弹窗提醒 - 这两项必须写进项目根目录的
sftp-config.json,不是全局设置,也不是插件设置页里能点出来的 - 注意:一旦启用了
sync_down_on_open,每次打开都走网络,大文件或弱网环境会卡顿,得自己权衡











