Notepad++ 运行 Lua 脚本需依赖外部 lua.exe,关键前提是系统已安装 Lua 并加入 PATH;推荐用 NppExec 插件实现带参执行、错误跳转与输出捕获,同时避免中文路径引发的乱码或崩溃。

Notepad++ 本身不内置 Lua 解释器,要运行 Lua 脚本,必须依赖外部 lua.exe 并通过「运行」菜单或 NppExec 插件调用。关键不是“配置 Notepad++”,而是让 Notepad++ 正确找到并执行系统已安装的 Lua 环境。
确认本地已安装 Lua 并能命令行调用
这是前提,否则后续所有配置都会失败。Notepad++ 只负责触发命令,不提供解释器。
- 在终端(CMD/PowerShell)中执行
lua -v,应输出类似Lua 5.4.6的版本信息;若报错'lua' is not recognized,说明未安装或未加到PATH - 推荐使用官方二进制包(如 luabinaries)或
luarocks自带的lua.exe,避免 MinGW 编译版缺少标准库 - 若 Lua 安装在非标准路径(如
C:\tools\Lua\5.4\lua.exe),需手动将其所在目录加入系统环境变量PATH,或在后续配置中写绝对路径
用「运行 → 运行…」快速执行当前 Lua 文件
适合单次调试,无需插件,但不支持传参、不保留历史、不能捕获错误堆栈到编辑器内。
- 按
F5打开运行对话框,输入:"C:\path\to\lua.exe" "$(FULL_CURRENT_PATH)" -
$(FULL_CURRENT_PATH)是 Notepad++ 内置变量,会自动替换为当前文件完整路径;注意路径含空格时必须用英文双引号包裹 - 点击「保存」可存为快捷键(如
Ctrl+Shift+L),但该快捷键仅对当前会话有效,重启后需重设 - 此方式无法向脚本传入命令行参数(如
--verbose),也不显示 Lua 的stderr(比如语法错误只闪退)
用 NppExec 插件实现带参数、可复用的执行方案
NppExec 是最实用的选择,它能保存脚本、重定向输出、支持变量、还能捕获错误行号并跳转——这对调试至关重要。
- 先通过「插件 → 插件管理 → 安装 NppExec」(旧版需手动下载 DLL 放入
plugins目录) - 打开「插件 → NppExec → Execute…」,输入:
cd $(CURRENT_DIRECTORY) "C:\path\to\lua.exe" $(FILE_NAME) $1 $2 $3
其中$1、$2是预留的命令行参数占位符,运行时可在弹出框中填入(如--input data.txt) - 点击「Save…」命名为
Run Lua,再点「Advanced Options → Add to Menu」使其出现在插件菜单 - 关键细节:勾选「Follow console output with caret」能让光标自动跳转到报错行(前提是 Lua 输出格式为
file.lua:12: error message,默认即如此)
避免中文路径和文件名导致乱码或崩溃
这是 Windows 下 Lua + Notepad++ 组合最常踩的坑,尤其当脚本读写文件或打印日志时。
- 确保 Notepad++ 当前编码为
UTF-8(右下角查看,若显示ANSI或GBK,请「编码 → 转为 UTF-8」) - 但 Lua 5.4 默认用系统 ANSI 代码页解析命令行参数和文件路径,遇到中文路径会直接失败(错误如
cannot open xxx.lua: No such file or directory) - 解决办法只有两个:① 把 Lua 脚本及所有相关文件移到纯英文路径下(推荐);② 升级到 Lua 5.4.7+ 并启用
-E标志强制 UTF-8 模式(需自行编译或找预编译版)
真正卡住人的往往不是配置步骤,而是 Lua 解释器是否就绪、路径是否含中文、以及错误输出能否被正确捕获和定位。NppExec 的「Follow console output」选项和绝对路径引用是稳定运行的两个支点,其余都是锦上添花。

















