必须开启“显示空格与制表符”:快捷键ctrl+shift+space或菜单视图→显示符号→显示空格与制表符,空格显示为浅灰色圆点·、制表符为浅灰色箭头→,避免混用导致indentationerror等缩进错误。

Notepad++ 默认不显示空格和制表符,但缩进问题(尤其是 IndentationError)90% 源于它们混用且不可见——必须开「显示空格与制表符」,而不是「显示所有字符」。
怎么快速打开空格和 Tab 可视化
直接按快捷键 Ctrl+Shift+Space,或走菜单:视图 → 显示符号 → 显示空格与制表符。启用后,空格变成浅灰色圆点 ·,制表符变成浅灰色箭头 →。
- 别点
显示所有字符(快捷键Ctrl+Shift+P),它会把¶、↵全堆出来,干扰代码阅读 - 状态栏右下角那个类似
¶的小图标也能开关,但容易误触,建议走菜单或快捷键 - 如果菜单项是灰色的,说明当前文档是只读状态:右键标签页 →
重新加载,或检查文件权限
开了却看不到 · 或 →?先查这三处
不是功能失效,而是被环境卡住:
- 文档编码是
UTF-16或UTF-8-BOM:Notepad++ 渲染不稳定,另存为 → UTF-8(无 BOM)再重开 - 主题/字体让符号颜色太淡:进
设置 → 样式配置器 → 全局样式 → 空白字符,调亮前景色 - 光标所在行没刷新:滚动几行,或切换到其他标签再切回来,强制重绘
为什么 Python / YAML / JSON 文件必须开这个
这类语言靠缩进定义结构,而 · 和 → 在默认状态下完全不可区分。报错提示的那行代码往往没问题,真正的问题藏在它上面三行里一个悄悄混进去的 →。
-
IndentationError: unindent does not match any outer indentation level这类错误,基本就是·和→混用导致 - 网上抄的代码、Git 拉下来的脚本,只要没开这个,就等于蒙眼改缩进
- 显示只是第一步;后续得配合
.editorconfig固化规则,否则换台机器、换个编辑器又错位
转换前务必确认缩进模式是否匹配
想用 编辑 → 空格/制表符 → 将空格转换为制表符,得先看状态栏右下角显示的是 4 SP 还是 4 TAB:
- 如果显示
4 SP却执行转 Tab,Notepad++ 会按“4个空格 = 1个Tab”换算;但若实际缩进是 2 或 8,结果就会错层 - 右键点击状态栏缩进显示(如
4 SP),可手动切为4 TAB或对应数值 -
设置 → 首选项 → 语言 → 制表符设置中的制表符大小必须和状态栏一致,否则转换逻辑错乱
最麻烦的不是找不到开关,而是开着它却忘了看——缩进问题从来不在报错那一行,而在它上面三行里藏着。











