Sublime Text 需依赖系统 PATH 中的 dart/flutter 命令实现功能;常见问题是 GUI 启动时未加载 shell 配置,应优先配置 Settings–User 中的 "path",再重启并重启分析服务器,而非硬填 SDK 路径。

Sublime Text 本身不运行 Dart,也跑不了 Flutter App;它只是个编辑器,所有“跳转定义”“补全”“格式化”都靠你本地装好的 dart 和 flutter 命令支撑。插件配错、PATH 没生效、SDK 路径填错,三者任一出问题,Ctrl+Click 就跳不到源码,Ctrl+Shift+P 里就搜不到 Dart: Format File。
终端能跑 dart --version,Sublime 却报 Unable to locate SDK
这是最常见卡点:Sublime 启动时没读到 shell 的 PATH(尤其 macOS GUI 启动的 Sublime 读不到 ~/.zshrc)。别在插件设置里硬填 dart_sdk_path,优先走系统级 PATH。
- 在终端执行
which dart,确认输出类似/opt/homebrew/bin/dart(macOS)或C:\src\flutter\bin\dart.bat(Windows) - 打开 Sublime → Preferences → Settings – User,加一行:
"path": "/opt/homebrew/bin:/usr/local/bin"(把你的实际 bin 路径填进去) - 重启 Sublime(不是重载设置),再按
Ctrl+Shift+P输入Dart: Restart Analysis Server,看控制台(Ctrl+`)是否还有错误 - 如果仍失败,再退而求其次:去 Preferences → Package Settings → Dart → Settings – User,填
"dart_sdk_path": "/opt/homebrew/Caskroom/flutter/3.19.5/flutter/bin/cache/dart-sdk"——注意路径必须指向cache/dart-sdk,不是flutter根目录
装了 Dart 插件但 Ctrl+Space 不出补全,Go to Definition 跳空文件
原生 Sublime 不连语言服务器,Dart 插件默认用的是已弃用的 legacy 分析服务器,对 Flutter 项目支持极差。要补全准、跳转稳,得切到 LSP。
- 用 Package Control 安装
LSP和LSP-dart两个插件 - 确保终端能跑
dart --version,否则LSP-dart启动失败,日志里会报Cannot find 'dart' - 打开一个
.dart文件,状态栏右下角应显示LSP-dart;若没有,检查LSP.sublime-settings里"dart"的"command"是否指向正确的dart可执行文件(比如 Flutter SDK 里的bin/cache/dart-sdk/bin/dart) - 补全不会实时弹出,需手动触发
Ctrl+Shift+P → LSP: Auto Complete,或等你敲完单词后按Ctrl+Space
想按 Ctrl+B 直接运行 .dart 文件或 flutter run
Sublime 没内置运行时,所谓“运行”就是调外部命令。构建系统必须写对,且只适用于单文件脚本或已配置好工作区的 Flutter 项目。
- 单文件 Dart 脚本:新建构建系统(Tools → Build System → New Build System…),粘贴:
{ "cmd": ["dart", "run", "$file"], "selector": "source.dart", "file_regex": "^(.*?):([0-9]+):([0-9]+):.*$", "working_dir": "$file_path" }保存为Dart.sublime-build - Flutter 项目运行:同样新建构建系统,但要用
flutter run,且必须设"working_dir": "$project_path",否则找不到pubspec.yaml;内容示例:{ "cmd": ["flutter", "run"], "selector": "source.dart", "working_dir": "$project_path" } - 注意:
flutter run构建系统不会自动拉起模拟器或真机,设备必须提前连好;报No connected devices是环境问题,和 Sublime 无关 - 别用
dart_sublime插件——最后一次更新是 2017 年,不兼容 Dart 3,装了反而冲突
subl my_app 打开项目后,import 提示断掉、MaterialApp 补全失效
Sublime 不自动识别 Flutter 项目结构,它不知道哪是 lib、哪是 test,更不清楚 pubspec.yaml 在哪。必须靠 .sublime-project 显式声明。
- 在项目根目录新建
my_app.sublime-project,内容至少包含:{ "folders": [ { "path": "." } ], "settings": { "dart_flutter_sdk_path": "/opt/homebrew/Caskroom/flutter/3.19.5/flutter" } } -
dart_flutter_sdk_path必须设为 Flutter SDK 根目录(不是cache/dart-sdk),否则WidgetsBinding.instance这类 Flutter 特有类无法补全 - 这个文件一存,Sublime 才知道该把
lib/当源码根、把test/当测试目录,import 'package:flutter/material.dart'才能正常解析 - 别指望插件自动生成项目——
flutter create my_app得在终端跑,Sublime 只负责打开
真正容易被忽略的,是 Sublime 启动方式和 PATH 的耦合:GUI 启动的 Sublime 读不到 shell 配置,而插件又极度依赖 dart 命令可执行。与其反复调试 dart_sdk_path,不如先确保 which dart 有输出,再把对应路径塞进 Sublime 的 Settings – User 里。其它都是锦上添花,PATH 不通,一切归零。

















