sublime text需通过arduino-cli插件实现arduino编译上传,禁用已停更的stino;配置build system调用arduino-cli compile/upload;头文件跳转需手动添加include路径;串口监视须另开终端。
Sublime Text 本身不内置 Arduino 编译支持,必须通过插件 + 外部工具链配合才能实现“保存即编译”或一键上传——核心是让 Sublime 调用 arduino-cli(官方推荐)或旧版 ino,而非依赖已停更的 Stino。
为什么别再用 Stino 插件
Stino 基于过时的 Arduino IDE 1.x API,无法适配 Arduino IDE 2.x 及其新项目结构(platformio.ini 或 arduino-cli 的 JSON 配置),且长期无维护。常见报错包括:AttributeError: 'NoneType' object has no attribute 'get'、Failed to parse boards.txt。它还会强制覆盖你本地的 arduino-cli 配置,导致串口识别失败。
用 arduino-cli + Sublime Build System 实现真编译
这是目前最稳定、可复现的方式:把 arduino-cli 当作纯命令行工具,Sublime 只负责触发和展示输出。
- 先安装
arduino-cli(推荐用brew install arduino-cli或官网下载二进制,**不要用 pip 安装的旧版**) - 运行
arduino-cli config init生成配置,确认sketchbook.path指向你的代码目录 - 在 Sublime 中新建 Build System(Tools → Build System → New Build System),填入:
{
"cmd": ["arduino-cli", "compile", "--fqbn", "arduino:avr:uno", "$file_path"],
"selector": "source.cpp",
"working_dir": "$file_path",
"variants": [
{
"name": "Upload",
"cmd": ["arduino-cli", "upload", "-p", "/dev/cu.usbmodem*", "--fqbn", "arduino:avr:uno", "$file_path"]
}
]
}
注意:/dev/cu.usbmodem* 需按实际串口名替换(macOS 查 ls /dev/cu.*,Windows 是 COM3 类似);arduino:avr:uno 换成你板子的真实 FQBN(查 arduino-cli board listall)。