Sublime Text 不能直接编译或上传 Arduino 代码,必须依赖独立安装的 arduino-cli 并正确配置路径、FQBN、串口及 sketch 命名规则;Stino 插件已停更,不兼容新版工具链,禁用为宜。

Sublime Text 本身不能编译或上传 Arduino 代码,所有“成功”都是靠调用 arduino-cli 实现的——配错路径、漏写冒号、串口格式不对,Build 就立刻失败。
为什么不能直接用 Stino 插件
Stino 已停更多年,依赖 Arduino IDE 1.x 的旧 API,无法解析 arduino-cli 的 JSON 配置和新版平台索引。常见报错包括:AttributeError: 'NoneType' object has no attribute 'get'、Failed to parse boards.txt,甚至会覆盖你本地的 arduino-cli 配置导致串口识别失败。它还会强制拉取过时的核心库,造成 Serial was not declared in this scope 这类编译错误。
- Stino 不再维护,GitHub 最后一次提交是 2021 年
- 它不兼容 Arduino IDE 2.x 及其内置的
arduino-cli路径结构 - 即使装上,也大概率在
Board Manager或Upload步骤卡死
必须独立安装 arduino-cli 并写死绝对路径
arduino-cli 不能靠 Arduino IDE 自带的二进制凑合——macOS 上它藏在 Arduino.app/Contents/Resources/app/arduino-cli,PATH 不自动加;Windows 下默认不在系统环境变量里;WSL/Git Bash 更是完全找不到。Sublime 启动时只读取自身进程继承的 PATH,所以必须手动指定完整路径。
- macOS/Linux:下载二进制后放到
/usr/local/bin/arduino-cli,运行arduino-cli version确认 - Windows:解压到固定目录如
C:rduino-clirduino-cli.exe,并在 Build System 中写成"cmd": ["C:\arduino-cli\arduino-cli.exe", "compile", ...] - 别用
pip install arduino-cli——那是社区旧版,不支持 AVR 核心最新版
Build System 必须显式写全 FQBN 和串口
FQBN(Fully Qualified Board Name)不是可选参数,--fqbn arduino:avr:uno 缺一不可。写成 --fqbn uno 或 -b arduino:uno 都会触发 Error: board arduino:uno not found。串口名也不能模糊匹配,/dev/cu.usbmodem* 在 Build System 里不生效,必须填实际设备名。
- 查真实 FQBN:
arduino-cli board listall | grep -i uno(macOS/Linux)或直接运行arduino-cli board listall(Windows) - 查真实串口:
ls /dev/cu.*(macOS)、mode或设备管理器(Windows)、ls /dev/ttyACM*(Linux) - Build System 中
"cmd"字段必须用数组写法,不能拼成字符串;$file_path指向 sketch 目录,不是单个 .ino 文件
头文件跳转失效?得手动加 include_dirs
Sublime 默认不认识 Arduino.h、Wire.h,Ctrl+Click 提示 No definition found 是正常现象。这不是插件问题,而是 Sublime 根本没加载 Arduino 核心库路径。EasyClangComplete 配置复杂且容易冲突,更直接的办法是在 Build System 配置里加 "include_dirs"。
- 先运行
arduino-cli compile --export-binaries --verbose -b arduino:avr:uno /path/to/sketch,从日志里找所有以-I开头的路径 - 挑出核心路径,例如 macOS 上可能是:
/Users/xxx/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino - 在 Build System JSON 中加入:
"include_dirs": ["/full/path/to/cores/arduino", "/full/path/to/variants/standard"]
最易被忽略的一点:sketch 目录名必须和主 .ino 文件同名,且目录下只能有一个同名 .ino 文件。否则 arduino-cli 会找不到入口,报 Error: no sketch found ——这不是 Sublime 的错,是工具链本身的约束。

















