Notepad++不能运行Flutter应用或触发热重载,仅能通过NppExec插件调用dart run执行无pubspec.yaml的纯Dart脚本;需手动配置系统PATH、彻底重启Notepad++,并使用chcp 65001 && dart run "$(FILE_NAME)"等命令实现中文路径支持与错误跳转。

Notepad++ 不能运行 Flutter 应用,也不能触发热重载或连接设备;它只能调用 dart run 执行纯 Dart 脚本(无 pubspec.yaml 的单文件),且必须确保 dart 命令在 Notepad++ 进程内可用——不是终端能跑就行,而是环境变量要被编辑器继承。
为什么 F5 直接输 dart "$(FULL_CURRENT_PATH)" 总报 command not found
根本原因不是命令写错,而是 Notepad++ 启动时没加载系统 PATH 中的 dart 路径。Windows GUI 程序(包括 Notepad++)不自动读取用户级环境变量,尤其当你用 Chocolatey、Flutter SDK 自带 Dart 或 Homebrew 安装时,路径往往只加在 shell 配置里(如 ~/.zshrc 或 PATH 用户变量),Notepad++ 启动时不继承。
- 先在 CMD 或 PowerShell 里执行
dart --version,确认能输出版本号 - 如果失败,去系统环境变量里手动添加 Dart SDK 的
bin目录(例如:C:\src\flutter\bin\cache\dart-sdk\bin或/opt/homebrew/bin) - 改完 PATH 后,必须彻底退出 Notepad++(右键托盘图标 → Exit),再重新打开,否则缓存的旧环境仍生效
- 别信“重启电脑”这种宽泛建议——只要 Notepad++ 进程没重建,PATH 就不会刷新
用 NppExec 实现真正一键运行(支持参数、中文路径、错误跳转)
F5 原生弹窗不保存命令、不处理空格、不捕获 stderr,真要稳定跑 Dart 脚本,必须用 NppExec 插件。它能解析 file:line:col 格式错误并点击跳转,还能传参、切编码页、防闪退。
- 安装插件:Plugins → Plugins Admin → 搜索
NppExec→ 勾选安装 - 打开控制台:Plugins → NppExec → Execute…(或按
F6) - 粘贴以下命令(适配中文路径 + Unicode 输出 + 参数支持):
chcp 65001 >nul && cd "$(CURRENT_DIRECTORY)" && dart run "$(FILE_NAME)" $1 $2 $3
- 点
Save...,命名为Run Dart;再进 Advanced Options → Add to Menu,勾选Follow console output with caret - 绑定快捷键:Settings → Manage Shortcut Keys → 在 Macros 分类下找到
Run Dart,设为Ctrl+R或其它
运行时会弹窗让你填参数(如 --verbose),$1 $2 $3 会自动替换;错误行如 test.dart:12:18: Error: Expected ';' after this. 点击即可跳转。
file_regex 不匹配导致错误定位失效
Notepad++ 默认不解析 Dart 错误位置,除非你在 NppExec 脚本里显式启用行号提取。Dart 3.4+ 的 dart run 输出格式是 file.dart:42:5: Error: ...,但旧版可能省略文件名前缀或用空格分隔,file_regex 必须对齐。
- NppExec 本身不提供
file_regex配置项,得靠外部工具(如批处理)重写输出格式,实际更简单的是:直接用chcp 65001 && dart run ...并依赖Follow console output with caret功能人工识别 - 若坚持自动跳转,可加一层包装脚本:
dart run "$1" 2>&1 | sed 's/^\([^:]*\.\(dart\|dart\.freezed\)\):/\1.dart:/g'(Linux/macOS),Windows 则需用 PowerShell 替代 - 别硬套 Sublime 的正则
^(*?):([0-9]*):([0-9]*):? ?(.*)$—— Notepad++ 的Run对话框不支持该语法,NppExec 也不解析它
Flutter 项目里的 lib/main.dart 无法靠这个方案“一键运行”,因为 flutter run 需要 TTY 交互、设备发现和 daemon 进程管理,Notepad++ 构建系统根本不支持。你顶多用 NppExec 跑 flutter pub get 或 dart analyze 这类短时命令——真正的运行和调试,还是得切到终端。


















