nppexec通过命名脚本而非配置文件管理多语言环境,必须以npp_save开头确保代码保存,依赖$(full_current_path)等变量组合实现python/java/c++等不同语言的正确执行。

NppExec 是 Notepad++ 中实现多语言运行环境的核心插件,它不靠“配置文件”管理环境,而是靠命名脚本 + 关联菜单项来区分 Python、Java、C++ 等不同环境。你看到的“多个配置”,本质是多个独立保存的 NppExec 脚本,每个脚本对应一种语言的执行逻辑。
NppExec 脚本必须用 NPP_SAVE 触发保存
不加 NPP_SAVE,Notepad++ 不会自动保存当前文件,导致编译/运行时读取的是旧内容。尤其对 Python 和 Java 这类解释型/半编译型语言,改了代码但没保存就点运行,控制台输出的还是上一版结果,非常容易误判为“配置失败”。
-
NPP_SAVE必须放在脚本第一行(或至少在调用解释器/编译器之前) - 它不带参数,就是强制保存当前文档
- 如果你用的是
cmd /k方式(通过“运行→运行(F5)”),则不需要NPP_SAVE,因为那种方式不依赖插件状态,但会丢失工作目录和路径变量的稳定性
不同语言脚本的关键差异在路径变量和命令顺序
$(FULL_CURRENT_PATH)、$(NAME_PART)、$(CURRENT_DIRECTORY) 这三个变量行为一致,但组合方式决定成败:
Python 直接解释:
NPP_SAVEpython "$(FULL_CURRENT_PATH)"
Pandas 配置文件报告生成器下载使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
Java 编译+运行需分两步且切换目录:
NPP_SAVEjavac "$(FULL_CURRENT_PATH)"echo cd "$(CURRENT_DIRECTORY)"java $(NAME_PART)
⚠️ 注意:java命令不带.class后缀,也不带路径,只认$(NAME_PART)—— 即文件名(不含扩展名);且必须确保.class文件生成在当前目录C/C++ 编译生成
.exe并立即执行:NPP_SAVEgcc "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe""$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
⚠️ 注意:$(NAME_part)是小写(原始资料有笔误),实际应为$(NAME_PART);大小写不一致会导致路径拼错、找不到 exe
容易被忽略的兼容性坑:Notepad++ 7.9+ 的 NppExec 插件位置变了
新版 Notepad++(7.9 及以后)默认不再内置插件管理器,NppExec 需手动下载安装:
- 去官网 https://www.php.cn/link/c975f21874ed5bb553d3e61d41244688 下载最新
NppExec.dll - 放入 Notepad++ 安装目录下的
plugins文件夹(不是plugins\NppExec子目录) - 重启 Notepad++
如果插件没加载成功,插件 → NppExec 菜单项会直接消失,此时所有脚本配置都无效——很多人卡在这一步,却反复检查脚本语法。
另外,Windows 用户若用的是 MinGW-w64(非传统 MinGW),g++.exe 可能位于 mingw64\bin 而非 bin,环境变量 PATH 必须指向正确路径,否则 g++ 命令报 'g++' is not recognized。
NppExec 没有全局配置文件,每个脚本都是孤立的;真正影响运行成败的,是变量拼写、保存时机、PATH 可见性这三点。其他所谓“配置文件”只是你本地存的文本备份,Notepad++ 本身不读取它们。










