notepad++本身不支持直接运行lua脚本,所谓“一键运行”实为调用系统path中的lua.exe;需先验证lua -v可用,再通过f5配置cmd /c lua "$(full_current_path)" > "__lua_log.txt" && notepad "__lua_log.txt"实现日志落地查看。

Notepad++ 本身不支持直接运行 Lua 脚本
你点“运行”菜单或按 F5,输入 lua "$(FULL_CURRENT_PATH)" 后看似能执行,但实际是调用了系统 PATH 中的 lua.exe —— 和 Notepad++ 无关。它不会捕获输出到编辑器内,更不会自动显示日志。
也就是说:print("hello") 会打印到一个一闪而过的命令行窗口(Windows 默认行为),你根本来不及看。
- 确保已安装 Lua(如
lua-5.4.6-win64.zip解压后把lua.exe所在目录加进系统PATH) - Notepad++ 的“运行”功能只是快捷调起外部命令,不是内置解释器
- 想看到日志,必须让输出稳定可见:要么重定向到文件,要么用工具捕获并弹窗/写入控制台
最简单可行的日志查看方式:重定向到临时文件 + 自动打开
不用装插件、不改配置,两步搞定。关键是让 print 输出落地,再快速查看。
在 Notepad++ 中按 F5,粘贴以下命令(一行):
cmd /c "lua "$(FULL_CURRENT_PATH)" > "$(CURRENT_DIRECTORY)\__lua_log.txt" && notepad "$(CURRENT_DIRECTORY)\__lua_log.txt""
-
>是覆盖写入,避免旧日志干扰;若需追加,改用>> -
notepad会立即打开日志文件;如用 VS Code 等,可换成code --wait - 注意路径中含空格也没问题,
"$(...)"已做引号包裹 - 首次运行后,
__lua_log.txt会出现在当前文件所在目录,下次可直接用Ctrl+O打开
想实时看输出?用 lua.exe -i 进入交互模式
适合调试小段逻辑,比如验证某个函数返回值或变量类型,不需要完整脚本执行流程。
按 F5,输入:
cmd /c "lua -i -e "dofile('$(FULL_CURRENT_PATH)')"
-
-i表示执行完脚本后不退出,留在 Lua 交互环境里 -
print()语句会在控制台直接显示,且后续还能手动调用变量、函数查状态 - 缺点:窗口仍会闪退(除非你勾选了 Notepad++ “运行”对话框里的“捕获输出”复选框 —— 但该选项对
cmd /c无效,仅对直连 exe 有效;所以更稳的方式是用conhost.exe包一层,见下条)
避免黑窗口闪退:用 conhost.exe 强制保持控制台
这是 Windows 下绕过“一闪而过”的底层办法,比第三方插件更轻量、更可控。
按 F5,输入:
conhost.exe lua "$(FULL_CURRENT_PATH)"
-
conhost.exe是 Windows 控制台宿主,直接调它,窗口不会自动关闭 - 必须确保
conhost.exe在系统路径中(Win10/11 默认有,位置通常在C:\Windows\System32\conhost.exe) - 如果报“找不到”,说明系统异常,此时退回上一节的临时文件方案更稳妥
- 此方式下所有
print、io.write、错误堆栈都会原样留在窗口里,关窗即止,无残留
真正卡住人的从来不是语法,而是输出没地方落。用好重定向或 conhost,日志就不再“看不见”。











