sublime text 无法作为主力 flutter ide,因其不支持热重载、断点调试等核心功能,仅能通过构建系统同步执行 flutter run(导致界面假死),且 dart/flutter 补全需严格配置 lsp-dart、sdk 路径及环境变量。

Sublime Text 不能作为主力 Flutter IDE,它连 flutter run 的持续进程都维持不住,更别说热重载、设备列表、断点调试这些——所有“运行”操作本质只是调用终端命令,执行完就退出。
为什么 Ctrl+Click 跳不到 Widget 定义
不是插件没装,而是分析服务器压根没起来,或者路径指向了错误位置:
-
dart_sdk_path必须填 Flutter 自带的 SDK 路径,例如 macOS 是/Users/xxx/flutter/bin/cache/dart-sdk,Windows 是C:\flutter\bin\cache\dart-sdk;填独立安装的 Dart SDK 或只填到/flutter根目录都会失败 - 必须关掉旧协议:
"use_legacy_analysis_server": false,否则解析package:flutter/material.dart会返回空或崩溃 - 改完设置后必须重启 Sublime(不是重载配置),再执行
Ctrl+Shift+P→Dart: Restart Analysis Server - 打开控制台(
Ctrl+`),看到Analysis server ready才算真正生效
怎么让 Ctrl+B 触发 flutter run 却不卡死界面
Sublime 的构建系统是同步阻塞的,它不会保持 flutter run 进程运行,所以你按完 Ctrl+B 后编辑器会“假死”,直到你手动中断(Ctrl+C)或命令自然退出:
- 新建构建系统(
Tools → Build System → New Build System) - 填入以下内容(注意
working_dir必须设为项目根目录,否则pubspec.yaml找不到):{ "cmd": ["flutter", "run"], "selector": "source.dart", "working_dir": "$project_path", "variants": [ { "name": "Run on Device", "cmd": ["flutter", "run"] }, { "name": "Build APK", "cmd": ["flutter", "build", "apk", "--release"] } ] } - 保存为
Flutter.sublime-build,然后在Tools → Build System中选中它 - 别指望它弹出模拟器或自动重载——它只负责发命令。热重载仍要切回终端按
r,设备管理还得靠flutter devices
LSP-dart 补全为啥不识别 Text、Scaffold 这些 Widget
原生 Dart 插件的补全在 Dart 2.12+ 后基本失效,LSP-dart 是目前唯一可行路径,但它对 Flutter 特有类支持很弱:
- 必须先装
LSP和LSP-dart两个插件,缺一不可 -
LSP-dart启动时会找dart命令,不是找flutter,所以"command"要明确指向flutter/bin/cache/dart-sdk/bin/dart,不能依赖 PATH 里的任意 dart - 补全默认不自动弹出,要手动触发:
Ctrl+Shift+P→LSP: Auto Complete,或保存后等几秒再按Ctrl+Space - 如果
Text.还是没反应,检查是否设置了dart_flutter_sdk_path(LSP-dart 文档里有说明),没设就几乎不识别 Flutter 框架类
最常被忽略的一点:Sublime 启动时根本读不到 shell 的 PATH,即使终端里 which flutter 有输出,插件也大概率找不到命令。必须在 Preferences → Settings – User 里硬编码 "path" 字段,填上你的 flutter/bin 和 dart-sdk/bin 路径,并彻底重启 Sublime——这一步漏掉,后面全白配。











