Sublime Text 需通过 arduino-cli 实现 Arduino 开发,Stino 插件因依赖过时的 Arduino IDE 1.x 结构已失效;必须手动配置 arduino-cli 路径、FQBN、串口及 include_dirs 才能编译上传并支持跳转。

Sublime Text 不能直接编译或上传 Arduino 代码,它连 Arduino.h 都不认识——所有“Build succeeded”提示,都是靠调用外部 arduino-cli 实现的。想让它真正干活,你得亲手配好命令路径、FQBN、串口设备,漏一个环节,Build failed 就立刻报给你看。
为什么 Stino 插件现在基本不能用
Stino 依赖 Arduino IDE 1.x 的内部结构(比如硬编码读取 boards.txt、调用 Java 组件),而官方早已转向 arduino-cli 2.x,配置全变成 JSON 和扁平化目录。你现在装 Stino,大概率遇到:
Stino: Error: Failed to parse boards listAttributeError: 'NoneType' object has no attribute 'get'- 菜单项全灰、串口识别为空、上传无响应
它不读 arduino-cli config,还会覆盖你本地的平台配置。截至 2026 年 5 月,Stino 已无实质维护,GitHub 最后一次提交是 2017 年。
必须用 arduino-cli,且要手动加进系统 PATH
别下 Arduino IDE 图形版再试图“集成”——你要的是命令行工具链本身。正确做法是:
- 从 arduino-cli 官方 releases 下对应系统的二进制(如
arduino-cli_0.40.2_macOS_64bit.tar.gz) - 解压后把
arduino-cli文件移到/usr/local/bin(macOS/Linux)或加到 Windows 的系统环境变量PATH - 终端运行
arduino-cli version确认可执行;再跑arduino-cli config init生成默认配置 - 执行
arduino-cli core update-index && arduino-cli core install arduino:avr安装 Uno/Nano 所需核心
验证是否真通:在空目录放个 Blink.ino,终端执行 arduino-cli compile -b arduino:avr:uno .,能生成 .hex 文件才算过关。
Sublime 自定义 Build System 必须写对这四点
Tools → Build System → New Build System,填入以下内容(注意替换实际值):
{
"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.usbmodem*", "--fqbn", "arduino:avr:uno", "$file_path"]
}
]
}
关键细节:
-
$file_path必须指向整个 sketch 目录(含同名文件夹 +.ino文件),不是单个.ino文件 -
/dev/cu.usbmodem*要按实际串口改:macOS 用ls /dev/cu.*查,Windows 是COM3这类,Linux 是/dev/ttyUSB0 - FQBN 必须精确匹配:运行
arduino-cli board listall | grep -i uno看真实标识(可能是arduino:avr:uno或arduino:avr:nano) -
"selector": "source.arduino"比source.cpp更准——它让 Ctrl+B 只在.ino文件里生效,避免误触发
头文件跳转失效?只有两个有效解法
Ctrl+Click Wire.h 提示 “No definition found”,是因为 Sublime 默认不索引 Arduino 核心库路径。可行方案只有:
- 轻量级:在 Build System JSON 里加
"include_dirs",例如:"include_dirs": ["/Users/xxx/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino", "/Users/xxx/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/variants/standard"] - 更稳但稍重:装
EasyClangComplete插件,然后执行arduino-cli compile --export-binaries --verbose,从日志里复制所有-I开头的路径,填进ecc_config.json
别信“重启 Sublime 就自动识别”的说法——Arduino 库路径是动态生成的,不显式声明,Sublime 就真看不见。

















