cmd中执行lua -v成功是关键前提,Notepad++“一键运行”依赖系统PATH能调用lua.exe;若报错需先配置PATH并重启Notepad++,F5命令须加英文双引号防路径截断,中文乱码需统一UTF-8编码。

cmd 中执行 lua -v 是否成功
这是最直接、最关键的验证动作。Notepad++ 本身不带 Lua 解释器,所有运行都依赖系统能否调起 lua.exe。打开 CMD 或 PowerShell,输入:lua -v
如果返回类似 Lua 5.4.6 的版本信息,说明解释器已安装且 PATH 配置正确;若报错 'lua' is not recognized as an internal or external command,就卡在这一步了——别往下配 Notepad++,先解决这个。
Notepad++ 重启后 F5 运行是否闪退或报错
PATH 改完必须彻底关闭 Notepad++(不是新建窗口),再重开。否则编辑器仍用旧环境变量,lua -v 在 cmd 里能跑,F5 却静默失败或弹窗报错。
- F5 输入:
cmd /k lua "$(FULL_CURRENT_PATH)" & PAUSE—— 注意双引号包裹$(FULL_CURRENT_PATH) - 测试文件内容写一行:
print("OK") - 保存为
test.lua(路径尽量用纯英文,如D:\tmp\test.lua) - 按 F5:黑窗应弹出、显示
OK、停住等待按键;若一闪而过,说明没加& PAUSE;若报lua: command not found,说明 PATH 没生效或 Notepad++ 没重启
中文输出是否乱码
乱码不是脚本问题,是 Windows 控制台编码(默认 GBK)和 Notepad++/Lua 文件 UTF-8 编码错位导致的。临时验证方式:
把 F5 命令改成:chcp 65001 && lua "$(FULL_CURRENT_PATH)" & PAUSE
再运行含 print("你好") 的脚本。如果显示正常,说明是编码问题;如果仍乱码或崩溃,回头检查路径是否含中文——cmd 解析时会把 C:\我的脚本.lua 当成两个参数,直接崩,这不是 Lua 的锅,是 shell 层面的截断。
想传参或点错误行跳转?试试 NppExec
原生 F5 不支持命令行参数,也捕获不到 stderr 错误位置。装好 NppExec 后,在 Execute... 里输:
cd "$(CURRENT_DIRECTORY)"<br>"lua" "$(FILE_NAME)" $1 $2 $3
然后保存为
Run Lua 并加到菜单。运行时报错如 test.lua:5: attempt to index a nil value,勾选了 Follow console output with caret 就能直接跳转到第 5 行——这才是真调试,不是“跑一下看看”。
真正卡住的从来不是配置菜单项,而是 lua.exe 到底能不能被系统看见、当前 Notepad++ 进程用的是哪套环境变量、路径里有没有空格或中文、控制台用的是什么编码——四者缺一不可。漏掉任何一个,F5 都只会沉默或闪退,不会告诉你哪里错了。











