在NppExec控制台查看真实输出需确认使用Execute而非Run,启用ANSI支持,添加调试echo、PAUSE或重定向到文件,并检查NPP_SAVE位置、EXT_PART空格及编码链。

如何在NppExec控制台里看到真实输出内容
Notepad++ 本身不执行代码,所谓“控制台输出”其实是 NppExec 调起 cmd/powershell 后捕获的 stdout/stderr。如果你运行后控制台一片空白、只闪一下就关、或显示乱码,大概率不是脚本没输出,而是输出被吞了、编码错了、或根本没走 NppExec 流程。
- 确认你用的是
NppExec → Execute,而不是Run → Run (F5)—— 后者绕过 NppExec,不捕获输出,也不支持 ANSI/重定向 - 脚本开头加一句
echo [DEBUG] START或python -c "print('test')",排除脚本本身无输出的可能 - 检查 NppExec 是否已启用 ANSI 支持:菜单
Plugins → NppExec → Advanced Options中必须勾选Enable ANSI color output,否则带\x1b[32m的调试信息会被原样打印,而非渲染为颜色 - 若输出窗口一闪而逝,说明进程退出太快。在命令末尾加
& PAUSE(Windows)或; read -p "Press enter..."(WSL),方便观察
NppExec里怎么打印变量和路径用于调试
NppExec 脚本不支持 print(),但提供内置变量和 echo 命令,是定位路径错误、扩展名识别失败等问题最直接的方式。
- 所有路径变量必须用双引号包裹,尤其含空格时:
echo FULL: "$(FULL_CURRENT_PATH)" - 关键调试变量优先级:先
$(EXT_PART)(看是否为空或带空格),再$(CURRENT_DIRECTORY)(确认工作目录是否是你想的),最后$(NAME_PART)(避免文件名含点导致截断) - 不要写
if "$(EXT_PART)" == ".py" GOTO RUN就完事——加一行echo EXT: "$(EXT_PART)"在判断前,你会看到实际值可能是".PY "(末尾空格)或".py?"(BOM 或隐藏字符) -
NPP_SAVE必须放在第一行。否则你改了代码却运行的是磁盘上旧版本,echo出来的路径也还是上一次保存时的状态
Python/Node.js 输出不显示?检查终端检测与编码链
即使 NppExec 开了 ANSI、路径也对,Python 的 colorama 或 Node.js 的 chalk 仍可能静默失效——因为它们检测到非 TTY 环境,主动关闭颜色输出;同时中文乱码往往卡在编码链某一级。
- Python 要强制启用颜色:启动时加
-u参数(未缓冲输出),并在脚本开头加import os; os.environ["TERM"] = "xterm-256color" - Node.js 需设置环境变量:
set FORCE_COLOR=1(Windows)或export FORCE_COLOR=1(WSL),否则process.stdout.isTTY为false - 中文输出乱码?别只改 Notepad++ 编码。先在 NppExec 控制台执行
chcp 65001,再运行脚本;若正常,说明是控制台默认 GBK 导致,需在脚本内重置sys.stdout编码或全局启用 UTF-8 系统选项 - 注意:NppExec 的
Console Output/Input encoding设置(UTF-8 / OEM)只影响它自己读取控制台输出的解码方式,不影响 Python 进程内部的sys.stdout编码
导出调试日志到文件比复制粘贴更可靠
从 NppExec 控制台复制内容常丢换行、乱码、截断——这不是 Notepad++ 的 bug,而是 Windows 剪贴板对多字节文本和 ANSI 序列支持不稳定。直接重定向到文件才是生产级做法。
- 通用写法:
python -u "$(FULL_CURRENT_PATH)" > "$(CURRENT_DIRECTORY)\$(NAME_PART)_log.txt" 2>&1(捕获 stdout + stderr) - Windows 下避免路径空格出错:必须用双引号包裹整个重定向目标路径,且不能漏掉
2>&1,否则错误信息仍打在控制台 - 如果想每次运行自动覆盖旧日志(不追加),用单个
>;想追加,用>>;但注意后者会累积大量无用输出 - 日志文件生成后,可右键 →
Open in Notepad++直接查看,比盯着控制台滚动更易定位问题行
NPP_SAVE 的位置和 $(EXT_PART) 的隐式空格——这两个点卡住的人,远多于搞不定 ANSI 颜色的。


















