notepad++中一键显示所有不可见字符需点击“视图→显示符号→显示所有字符”,启用后用·表示空格、→表示tab、¶表示cr/lf;默认不继承,需修改config.xml中showsymbol值为2实现新文件默认开启。

怎么一键显示所有不可见字符(空格、Tab、CRLF)
Notepad++ 默认隐藏所有控制字符,导致你肉眼看不到 \r\n、\t、末尾空格或零宽字符,容易在脚本、配置文件、JSON 或 Git 提交时引发问题。最直接的办法就是打开「显示所有字符」。
- 点击顶部菜单 视图 → 显示符号 → 显示所有字符(英文版:View → Show Symbol → Show All Characters)
- 启用后,你会立刻看到:
·表示空格、→表示 Tab、¶表示 CR/LF 换行符(Windows 下是CRLF,Linux 下只显示LF) - 这个设置是**文档级开关**,关闭当前文件再打开不会自动继承;如需默认开启,得改配置(见下一条)
如何让新打开的文件默认显示隐藏字符
每次手动点太麻烦,尤其你常处理日志、配置或跨平台文本。Notepad++ 不提供全局默认开启「显示所有字符」的图形选项,但可通过修改配置生效:
- 关闭 Notepad++,用管理员权限打开其安装目录下的
config.xml(路径类似C:\Program Files\Notepad++\config.xml) - 找到
<guiconfig name="ShowSymbol" value="0"></guiconfig>这一行,把value="0"改成value="2" -
value="2"表示「显示所有字符」;1是仅显示行尾符(¶),0是关闭 - 重启 Notepad++,新建或打开任意文件,都会默认显示
·、→、¶
遇到 SOH、ETX 等控制字符不显示?不是没开对,是它本来就不画形
Notepad++ 的「显示所有字符」只覆盖常见空白与换行控制符(\t、\r\n、 ),对 \x01(SOH)、\x03(ETX)、\x1A(SUB)等非打印控制字符,它默认不渲染任何图形符号——不是你漏操作,是软件限制。
- 这类字符会表现为“空白”或“乱码块”,甚至被截断(尤其在 UTF-8 无 BOM 文件中)
- 验证是否存在:用
Ctrl+F打开查找框 → 切到「查找模式」为「扩展」→ 输入\x01尝试定位 - 如需可视化调试,建议配合十六进制插件(如 Hex-Editor)或换用 VS Code + 「Hex Editor」扩展
显示字符后发现大量 · 和 →?小心编辑器自动补全陷阱
显示功能本身没副作用,但暴露问题后,你可能顺手删掉某些看似多余的空格或 Tab——这时候要特别注意上下文语义:
- Python 缩进用
→(Tab)还是·(空格)必须统一,混用会直接报IndentationError - YAML/Makefile 对开头空格极其敏感,删掉行首
·可能破坏结构 - Git diff 里显示的
^M实际就是\r,对应 Notepad++ 中的¶左侧小竖线;若批量替换\r\n为\n,可能破坏 Windows 工具链兼容性
真正难的从来不是“怎么显示”,而是显示之后,能不能一眼分辨哪个 · 是该留的、哪个 ¶ 是该删的——这取决于你正在看的是什么语言、什么环境、谁写的原始文件。










