Notepad++运行Lua脚本需先安装lua.exe并配置PATH,再安装NppExec插件;执行命令为“cd "$(CURRENT_DIRECTORY)"”后接“lua "$(FILE_NAME)" $1 $2 $3”,并勾选Follow console output with caret实现错误行跳转。

Notepad++ 本身没有“Lua 运行插件”——它不内置 Lua 解释器,也不提供叫“Lua 插件”的官方组件。所谓“安装插件”,实际是两件事:装 Lua 解释器(lua.exe),再装 NppExec 来调用它。
确认 lua.exe 已就位且系统能识别
这是所有后续操作的前提,跳过这步,NppExec 再好也没用。
- 打开 CMD 或 PowerShell,输入
lua -v;必须看到类似Lua 5.4.6的输出才算成功 - 若报错
'lua' is not recognized,说明没装或 PATH 没配对;推荐从 luabinaries 下载预编译版(如lua-5.4.6_Win64_bin.zip),解压后把含lua.exe的目录(如C:\lua\)加进系统环境变量Path - 改完 PATH 后,必须彻底关闭 Notepad++(不是新建窗口),再重新打开
安装 NppExec 插件(不是“Lua 插件”)
NppExec 是通用命令执行器,不是 Lua 专用插件,但它能精准控制 lua.exe 的调用方式、参数和输出捕获。
- 菜单栏 →
插件→插件管理→ 搜索NppExec→ 勾选安装(Notepad++ 8.9.7+ 自带插件管理器,无需手动放 DLL) - 安装完成后,必须重启 Notepad++(插件管理器安装后有时仍需重启才生效)
- 验证:菜单栏 →
插件→ 应出现NppExec子菜单
用 NppExec 配置 Lua 执行命令
这才是真正让 Lua 脚本“一键运行”的核心步骤,F5 原生 Run 功能做不到传参和错误跳转。
- 菜单栏 →
插件→NppExec→Execute... - 在输入框中粘贴以下两行(注意空格和引号):
cd "$(CURRENT_DIRECTORY)" lua "$(FILE_NAME)" $1 $2 $3
- 点击
Save...,命名为Run Lua - 再进
Advanced Options→Add to Menu→ 勾选刚保存的Run Lua,并务必勾选Follow console output with caret - 这样当 Lua 报错如
test.lua:15: attempt to index a nil value时,点击该行就能自动跳转到第 15 行
中文路径/文件名乱码怎么办
Windows 控制台默认编码是 GBK,而 Lua 脚本常为 UTF-8,直接运行会乱码或崩溃,这不是插件问题,是编码链断裂。
- 最稳方案:在
NppExec命令开头加chcp 65001 &&,即:chcp 65001 && cd "$(CURRENT_DIRECTORY)" lua "$(FILE_NAME)" $1 $2 $3
- 或者在脚本开头加
io.stdout:setvbuf("no")并确保 Notepad++ 当前文件编码为 UTF-8(右下角状态栏确认) - 避免用带中文的路径保存 Lua 文件——尤其当脚本里还用
io.open("data.txt")这类相对路径时,cd切换目录可能失效
真正容易被忽略的是:NppExec 的 Follow console output with caret 只对标准格式的错误输出生效(file.lua:line: message),如果脚本自己用 print() 模拟错误,就不会跳转;另外,$1 $2 $3 占位符只在弹窗里填值时才展开,写死在命令里不会自动代入。











