sublime text 本身不能编译或烧录 arduino 代码,所有功能均依赖调用独立安装的 arduino-cli;stino 插件已停更多年、不兼容新版工具链,必须禁用。

Sublime Text 本身不能编译或烧录 Arduino 代码,所有“成功”都是靠调用 arduino-cli 实现的——配错路径、漏写冒号、串口格式不对,Build 就立刻失败。
为什么 Stino 插件必须禁用
Stino 已停更多年,最后一次提交是 2021 年,它依赖 Arduino IDE 1.x 的旧 API,完全无法解析 arduino-cli 2.x 的 JSON 配置和新版平台索引结构。常见现象包括:
AttributeError: 'NoneType' object has no attribute 'get'-
Failed to parse boards.txt或Failed to parse boards list - 串口识别为空,
Serial was not declared in this scope编译错误 - 覆盖你本地的
arduino-cli配置,导致后续命令失效
即使装上,也大概率在 Board Manager 或 Upload 步骤卡死。它不兼容 Arduino IDE 2.x 及其内置的 arduino-cli 路径结构,禁用为宜。
arduino-cli 必须独立安装并写死绝对路径
别指望 Arduino IDE 自带的 arduino-cli 凑合用: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 核心最新版 - 如果 Sublime 是通过 Git Bash 或 WSL 启动的,得单独再装一份到对应环境 PATH 里,否则 Upload 会卡在串口识别
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) -
"cmd"字段必须用数组写法,不能拼成字符串;$file_path指向 sketch 目录,不是单个.ino文件 - 确保项目根目录下**只有一个同名
.ino主文件**(比如Blink.ino,且目录名也是Blink)
include 路径缺失会导致跳转失效和语法报错
Sublime 不认识 Arduino.h,也不理解 Serial、pinMode 这些符号——它只是编辑器。没有正确配置 include 路径,就无法跳转到定义、补全失效、甚至报 Serial was not declared in this scope。
- 需手动在
Preferences → Settings – User中添加"index_files": true和"folders"下的"path"列表,包含核心库路径(如/usr/local/share/arduino/hardware/arduino/avr/cores/arduino) - macOS 上可通过
arduino-cli core list --format json查核心安装位置;Windows 下通常在%LOCALAPPDATA%Arduino15packagesrduinohardwarevr* - 跳转失效不是 Sublime 的 bug,是你没告诉它去哪里找头文件
最易被忽略的是:FQBN 的三段冒号结构(arduino:avr:uno)必须严格匹配,少一个字符、多一个空格,arduino-cli 就拒绝干活;而 Sublime 不会提示你哪里写错了,只会弹出一行红色错误信息让你自己猜。











