Sublime Text需通过arduino-cli构建系统实现Arduino开发,旧插件已失效;应配置.sublime-build文件调用arduino-cli compile/upload命令,并注意FQBN匹配、串口权限及路径问题。

Sublime Text 本身不内置 Arduino 编译支持,必须通过插件 + 外部工具链配合实现“写代码 → 编译 → 上传”闭环。直接安装官方 Arduino IDE 更省事,但若你坚持用 Sublime(比如已有熟悉的工作流、多语言混编需求),关键不是“能不能”,而是“怎么让 arduino-cli 和 Sublime 的构建系统真正打通”。
为什么不能只装 Package Control 里的 Arduino 插件
旧版 Arduino-IDE 或 Stino 插件依赖已废弃的 Arduino 1.6.x API 和 Python 2,无法对接当前主流的 arduino-cli(v0.30+),且不支持 ESP32/ESP8266 等非 AVR 平台。它们在 Sublime 4 下基本无法加载或触发构建。
- Stino 最后更新是 2017 年,硬编码调用
arduino命令而非arduino-cli - Arduino-IDE 插件要求手动指定
arduino可执行路径,但新版 Arduino IDE 已默认不放arduino到 PATH - 这些插件不读取
platformio.ini或arduino.json,无法识别板型、端口、FQBN
正确做法:用 arduino-cli + Sublime 构建系统(Build System)
绕过所有老旧插件,直接用官方命令行工具 arduino-cli 配合 Sublime 的 .sublime-build 文件。前提是已安装并配置好 arduino-cli(含 core、lib、board manager)。
- 确认
arduino-cli可运行:arduino-cli version
- 添加常用板型,例如 ESP32:
arduino-cli core install esp32:esp32
- 在项目根目录放
arduino.json(或用--fqbn显式指定):{ "fqbn": "esp32:esp32:devkitc:FlashSize=4M", "port": "/dev/ttyUSB0" } - 新建
ArduinoCLI.sublime-build,保存到Packages/User/:{ "cmd": ["arduino-cli", "compile", "--fqbn", "$project_path/arduino.json:fqbn", "$file_path"], "selector": "source.arduino", "working_dir": "$file_path", "variants": [ { "name": "Upload", "cmd": ["arduino-cli", "upload", "-p", "$project_path/arduino.json:port", "--fqbn", "$project_path/arduino.json:fqbn", "$file_path"] } ] }
常见失败点和绕过技巧
实际配置中 80% 的问题出在路径解析、JSON 读取和权限上,不是 Sublime 本身的问题。
-
$project_path/arduino.json:fqbn是伪语法 —— Sublime 不支持 JSON 键提取,必须写死 FQBN 或改用 shell 脚本解析(推荐) - Windows 下
arduino-cli路径含空格(如C:\Program Files\...)会导致构建失败,建议用短路径或 symlink - 串口权限问题(Linux/macOS):上传时提示
Permission denied on /dev/ttyUSB0,需加用户进dialout组,并重启 session - Sublime 不自动刷新串口列表,
--port必须手动填对,可用arduino-cli board list先查 - 想支持自动补全和语法检查?别指望 Sublime 原生 —— 改用 VS Code + PlatformIO,或给 Sublime 装
EasyClangComplete配合 Arduino core 的build.path头文件路径
真正卡住人的从来不是“怎么配”,而是 arduino-cli 的 FQBN 格式是否匹配你 core install 的版本,以及 upload 命令里 -p 指向的设备是否存在且可写。其它都是次要的。










