sublime text 无法构建可用的 flutter 开发环境,仅支持语法高亮、跳转定义等基础功能;必须正确配置 dart 插件(作者 nickaivazis 或 mrjones)、dart_sdk_path 指向 flutter 自带 sdk,并启用 lsp-dart 补全,但 widgetsbinding 等 flutter 特有 api 补全仍缺失。

Sublime Text 不能构建出可用的 Flutter 跨平台开发环境——它不支持热重载、调试器、设备管理,也连不上 Dart 3.4+/Flutter 3.22+ 的语言服务器。你最多能配出语法高亮、Ctrl+Click 跳转定义、保存自动格式化和基础补全,前提是 PATH、插件、SDK 路径三者全部对齐。
装哪个 Dart 插件才不报红、不跳空文件
只装 Dart(作者是 nickaivazis 或旧版 mrjones),不是 Dartlang、SublimeDart,更不是任何带 “Flutter” 字样的插件。后三者已停更或不支持 null safety 后语法:required、??=、泛型推导全标红,Ctrl+Click 直接跳到空文件或 .dart.js。
- 按
Ctrl+Shift+P→Package Control: Install Package,搜Dart,严格核对作者字段 - 装完必须重启 Sublime,否则右下角状态栏不会显示
Dart - 如果右下角仍是
Plain Text,右键文件 →Open all with current extension as→Dart
dart_sdk_path 填错等于白配
dart_sdk_path 不是可选项,填错就导致 Failed to start the Dart analysis server 或 Unable to locate SDK。必须指向 Flutter 自带的 SDK,而不是单独装的 Dart 或 Flutter 根目录。
- 终端执行
which flutter,得到类似/opt/homebrew/Caskroom/flutter/3.19.5/flutter/bin/flutter的路径 - 对应 SDK 路径是
/opt/homebrew/Caskroom/flutter/3.19.5/flutter/bin/cache/dart-sdk(macOS/Linux)或C:\flutter\bin\cache\dart-sdk(Windows) - 菜单 →
Preferences → Package Settings → Dart → Settings – User,填入:{ "dart_sdk_path": "/opt/homebrew/Caskroom/flutter/3.19.5/flutter/bin/cache/dart-sdk", "use_legacy_analysis_server": false } - 删掉所有其他手动路径配置(如
flutter_sdk_path),避免冲突 - 改完保存,必须重启 Sublime,再按
Ctrl+Shift+P→Dart: Restart Analysis Server
LSP-dart 是补全唯一可行路径,但别指望它识别 WidgetsBinding
原生 Dart 插件的补全在 Dart 2.12+ 后已失效,返回空列表或静默失败。想有提示,只能上 LSP + LSP-dart,但它对 Flutter 特有类支持极弱。
- 用
Package Control安装LSP和LSP-dart - 确保终端能跑
dart --version;否则LSP-dart启动失败,状态栏右下角不会显示LSP-dart - 打开
LSP.sublime-settings,把"command"明确设为/path/to/flutter/bin/cache/dart-sdk/bin/dart,不能依赖PATH - 补全不会自动弹,要手动触发:
Ctrl+Shift+P→LSP: Auto Complete,或保存后等几秒再按Ctrl+Space -
WidgetsBinding.instance、required参数、Theme.of(context)这类补全基本不出现——这是LSP-dart的固有限制,不是你配错了
Ctrl+B 触发 flutter run 只能当一次性命令用
Sublime 的构建系统本质是单次命令执行,不支持长时进程、TTY 交互和 daemon 管理。flutter run 会卡死构建面板,无法热重载,也不能响应 r 命令。
- 新建构建系统:
Tools → Build System → New Build System… - 填入以下内容(注意
working_dir必须是项目根目录,否则找不到pubspec.yaml):{ "cmd": ["flutter", "run"], "selector": "source.dart", "working_dir": "$project_path" } - 保存为
Flutter.sublime-build,再通过Tools → Build System → Flutter启用 - 运行后切回终端,按
r手动热重载,按q退出 - 别指望它像 VS Code 那样点一下就启动模拟器并监听变更——所有构建、部署、重载都必须回到终端
最易被忽略的点是:GUI 启动的 Sublime(比如从 Dock 或开始菜单点开)默认读不到 shell 的 PATH,即使终端里 which dart 有输出,插件也大概率找不到命令。优先在 Preferences → Settings – User 里硬加 "path" 字段,而不是死磕 dart_sdk_path。











