sublime text 不能直接编译或烧录 arduino 代码,因其仅为编辑器,需通过配置 build system 调用 arduino-cli 实现编译上传;stino 插件已停更、不兼容新版工具链,推荐使用 arduino-cli + 自定义 build system 方案。

Sublime Text 本身不能编译或烧录 Arduino 代码,它只是编辑器;真正干活的是 arduino-cli,Sublime 只负责调用它——配置对了就能一键编译上传,配错了就卡在 command not found: arduino-cli 或 Serial was not declared in this scope。
为什么别碰 Stino 插件
Stino 已停更多年,依赖已废弃的 Arduino IDE 1.x API,遇到新版 arduino-cli 或 Arduino IDE 2.x 就直接报错:AttributeError: 'NoneType' object has no attribute 'get'、Failed to parse boards.txt。它还会偷偷覆盖你的 arduino-cli 配置,导致串口识别失败。你手动改好串口,它下次启动又给你清空。
- 它要求你必须装完整版 Arduino IDE,并硬编码路径(如
"arduino_app_path": "/Applications/Arduino.app/Contents/Java"),但新版 IDE 结构已变,路径失效 - 板型列表加载失败是常态,
Board Manager点开一片空白 - 上传时经常报
No serial port found,因为它根本不会读取arduino-cli board list的真实结果
必须用 arduino-cli + 自定义 Build System
这是目前唯一稳定、可复现、不依赖 GUI 的方式:把 arduino-cli 当纯命令行工具,Sublime 只做触发器和输出展示器。
- 先确认
arduino-cli装对了:arduino-cli version要能返回0.39+(别用pip install arduino-cli,那是旧版) - 运行
arduino-cli config init,再执行arduino-cli core update-index && arduino-cli core install arduino:avr - 在 Sublime 中新建 Build System(
Tools → Build System → New Build System),粘贴以下内容并保存为ArduinoCLI.sublime-build:
{
"cmd": ["arduino-cli", "compile", "--fqbn", "arduino:avr:uno", "$file_path"],
"working_dir": "$file_path",
"selector": "source.arduino",
"variants": [
{
"name": "Upload",
"cmd": ["arduino-cli", "upload", "-p", "/dev/cu.usbmodem14201", "--fqbn", "arduino:avr:uno", "$file_path"]
}
]
}
注意:/dev/cu.usbmodem14201 要换成你当前真实的串口(macOS 运行 ls /dev/cu.* 查,Windows 是 COM3,Linux 是 /dev/ttyACM0);arduino:avr:uno 必须写全 FQBN,uno 单独写会失败。
头文件跳转和语法支持怎么补
Sublime 默认不认识 Arduino.h,Ctrl+Click 跳不到定义,也没自动补全。这不是插件问题,是路径没告诉编辑器。
- 打开
Preferences → Settings – User,加一行:"index_files": true(启用索引) - 在项目根目录(即含
.ino文件的文件夹)里,手动创建.sublime-project,填入 include 路径(以 macOS 为例):
{
"folders": [
{
"path": "."
}
],
"settings": {
"additional_search_paths": {
"cpp": [
"/Users/yourname/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino",
"/Users/yourname/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/standard"
]
}
}
}
路径要按你本地 arduino-cli config get board_manager.additional_urls 和实际安装位置调整。不配这个,digitalWrite 永远标黄,跳转永远失败。
最常被忽略的一点:每次换 USB 线或插到不同电脑,串口名必变,-p 参数就得手动改一次;FQBN 写错一个字符(比如 arduino:avr:un0 少个 o),编译直接静默失败,连错误提示都不给——它只在终端里输出一行 Failed to compile,而 Sublime 默认折叠输出,你根本看不到。











