notepad++ 控制台需安装 nppexec 插件并启用 ansi 支持,配置等宽字体与 utf-8 编码,且 python/node.js 需手动设置环境变量强制输出 ansi 颜色。

Notepad++ 控制台输出不显示 ANSI 颜色?根本没启用 NppExec
Notepad++ 本身不解析 ANSI 转义序列(如 \x1b[32m),所谓“控制台支持 ANSI 颜色”,实际依赖 NppExec 插件 + 正确配置的脚本命令。直接双击运行 .bat 或调用 cmd.exe,输出永远是单色。
常见错误现象:
- 运行 Python 脚本含
print("\x1b[31mERROR\x1b[0m"),控制台只显示纯文本 ERROR - 已安装插件但菜单栏无
NppExec项,或执行后弹窗报错Plugin not loaded - 右键“在 CMD 中运行”能出颜色,但 Notepad++ 内置控制台仍灰白
实操建议:
- 确认 Notepad++ 是 Unicode 版(2026 年默认安装包均为 Unicode),下载对应
NppExec_0_6.zip(非 ANSI 版) - 解压后取
NppExec.dll,放入%APPDATA%\Notepad++\plugins\目录(不是安装目录下的 plugins!) - 重启 Notepad++,菜单栏应出现
Plugins → NppExec → Execute...,否则检查 DLL 是否放错位置或被杀毒软件拦截
NppExec 执行命令必须显式启用 ANSI 解析
NppExec 默认关闭 ANSI 颜色支持,即使插件装对了,不改配置也看不到颜色。它不继承系统 cmd 的行为,也不自动识别 color 命令。
实操建议:
- 菜单栏
Plugins → NppExec → Advanced Options... - 勾选
Enable ANSI color output(关键开关,不勾选等于没装) - 下方
Default script框里可预设常用命令,例如:cd $(CURRENT_DIRECTORY) python "$(FULL_CURRENT_PATH)"
- 点
Save后关闭,无需重启
注意:该设置全局生效,但仅对 NppExec 启动的进程有效;Run → Run...(F5)或外部 shell 不走此路径,不会触发 ANSI 解析。
Python / Node.js 输出 ANSI 失效?检查终端模拟与编码
即使 NppExec 开了 ANSI 支持,某些语言运行时仍输出纯文本——因为它们检测不到“真实终端”,主动禁用了颜色输出。
使用场景:
- Python 的
colorama或rich库默认不向非 TTY 输出 ANSI - Node.js 的
process.stdout.isTTY在NppExec下为false,导致 chalk 等库降级为无色
实操建议:
- Python 脚本开头加:
import os os.environ["TERM"] = "xterm"
,再导入colorama.init()或直接用print("\x1b[33myellow\x1b[0m") - Node.js 脚本中强制启用:
process.env.FORCE_COLOR = "1"; console.log("\x1b[35mmagenta\x1b[0m"); - 避免用
print("hello", flush=True)这类缓冲干扰,ANSI 序列需完整一行输出才易被解析
ANSI 高亮显示错位或乱码?字体与编码必须匹配
ANSI 颜色正常但文字重叠、换行错乱、中文显示方块——问题不在插件,而在 Notepad++ 的字体渲染和文件编码底层机制。
常见错误现象:
- 绿色文字后面多出空白或覆盖下一行
- 中文注释旁 ANSI 序列显示为
[32m等乱码 - 同一段代码在 CMD 里颜色正常,在 NppExec 控制台里偏移
实操建议:
- 菜单栏
设置 → 首选项 → 编辑器 → 字体,选等宽字体:Consolas、JetBrains Mono或Cascadia Code(避开NSimSun、宋体) - 确保脚本文件本身保存为
UTF-8(不含 BOM)(右下角编码状态栏确认,若显示UTF-8-BOM,先转再保存) - 不要在 ANSI 序列里混用全角空格或中文标点,
\x1b[1;33m你好\x1b[0m可能崩,优先用英文上下文测试
真正麻烦的是跨平台脚本:Windows 的 cmd.exe 对 ANSI 支持有限,而 NppExec 模拟的是简化版 xterm 行为,部分复合样式(如背景色+粗体叠加)可能被忽略——这不是 bug,是能力边界。











