立刻打开或关闭·→¶显示需按ctrl+shift+p或菜单栏「视图→显示符号→显示所有字符」,启用后即见·(空格)、→(tab)、¶(行尾);该设置为文档级,新文件默认不继承,须改config.xml中showsymbol值为2并重启才全局生效;\u200b、\ufeff、\x01等控制符始终不可见,需用hex-editor插件或扩展模式查找。

怎么立刻打开或关闭·→¶显示
按 Ctrl+Shift+P(不是 Ctrl+Shift+8,新版已改快捷键),或点击菜单栏「视图 → 显示符号 → 显示所有字符」。启用后立即看到:· 表示空格、→ 表示 Tab、¶ 表示行尾(Windows 下对应 \r\n,Linux/macOS 下只渲染 \n 对应的 ¶)。这个开关是文档级的——关掉再打开同一文件,状态保留;但新开文件不会继承。
为什么新文件默认不显示,且改了 config.xml 才生效
Notepad++ 没有图形界面选项控制全局行为,必须手动改配置文件才能让所有新文件默认显示隐藏字符:
- 完全退出 Notepad++
- 用管理员权限打开
config.xml(路径通常是C:\Program Files\Notepad++\config.xml或便携版根目录) - 搜索
<guiconfig name="ShowSymbol" value="0"></guiconfig> - 把
value="0"改成value="2"(1只显示行尾符,2才是「所有字符」) - 保存并重启 Notepad++
注意:已打开的旧文件不会自动刷新,需手动切换标签页或右键 →「重新加载」才生效。
哪些字符根本不会显示,哪怕开了「显示所有字符」
\u200B(零宽空格)、\uFEFF(BOM)、\x01(SOH)、\x03(ETX)这类 Unicode 或低字节控制符,Notepad++ 压根不渲染任何符号——不是你设置错了,是软件本身不支持。它们在编辑器里就是纯空白,肉眼无法识别,却可能引发 JSON 解析失败、Git 提交异常或 Python 缩进报错。
验证是否存在这类字符:
- 按
Ctrl+F打开查找框 - 切换查找模式为「扩展」
- 输入
\x01或\u200B尝试定位
真要可视化调试,得用十六进制插件(如 Hex-Editor),或换 VS Code + 「Hex Editor」扩展。
日常编码该用「显示所有字符」还是「显示空格与制表符」
多数情况下,推荐用 Ctrl+Shift+Space 或「视图 → 显示符号 → 显示空格与制表符」,它只显示 · 和 →,不带 ¶、↵ 等干扰符号,更适合 Python/YAML/JSON 等靠缩进定义结构的语言。而「显示所有字符」适合排查换行符混用(CRLF vs LF)、末尾空格、或确认行尾是否干净。
如果开了却看不到 · 或 →,先检查三处:
- 当前文件是否只读(右键标签页 →「重新加载」)
- 编码是否为 UTF-16 或 UTF-8-BOM(另存为 UTF-8 无 BOM 再重开)
- 样式配置器中「全局样式 → 空白字符」的前景色是否太淡
最常被忽略的是:开着显示功能,却没真去看——缩进问题几乎从不在报错那一行,而在它上面三行里藏着一个悄悄混进去的 →。











