立刻显示空格和制表符:按Ctrl+Shift+Space或视图→显示符号→显示空格与制表符,空格变·、制表符变→;避免误用“显示所有字符”;若不显示,检查只读状态、编码(应为UTF-8无BOM)、符号颜色及重绘;Python缩进错误多源于上方隐藏→;源头防控需勾选“以空格取代制表符”并设大小为4,再手动转换已有制表符;全角/不间断空格无法被识别,易致隐性报错。

怎么立刻让空格和制表符“现形”
直接按 Ctrl+Shift+Space,或走菜单:视图 → 显示符号 → 显示空格与制表符。启用后,普通空格变成浅灰色圆点 ·,制表符变成浅灰色箭头 →。这个组合最轻量,只显示缩进相关符号,不塞进 ¶、↵ 干扰视线。
别误点「显示所有字符」(快捷键 Ctrl+Shift+P),它会把行尾、回车全堆出来,写 Python 时一眼扫过去全是符号,反而找不到缩进问题。
开了却看不到 · 或 →?先查这三处
不是功能坏了,而是环境卡住了:
- 菜单项是灰色的?说明文档处于只读状态——右键标签页 →「重新加载」,或检查文件权限
- 编码是
UTF-16或UTF-8-BOM?Notepad++ 渲染不稳定,另存为UTF-8(无 BOM)再重开 - 符号颜色太淡看不清?进设置 → 样式配置器 → 全局样式 →「空白字符」,调亮前景色
- 光标所在行没刷新?滚动几行,或切到其他标签再切回来,强制重绘
为什么 Python 报错总在“上三行”
IndentationError: unindent does not match any outer indentation level 这类错误,90% 不出在报错那行,而出现在它上面几行里一个悄悄混进去的 →。你肉眼看到的“对齐”,其实是 ···· 和 → 拼出来的假象。
网上抄的代码、Git 拉下来的脚本,只要没开这个功能,就等于蒙眼改缩进。真正出问题的那行代码往往没问题,问题藏在它上面三行里。
怎么从源头掐断制表符混入
光看见不够,得让 Tab 键本身就不插 →:
- 设置 → 首选项 → 语言 → 勾选「以空格取代制表符」,并设制表符大小为
4(或项目约定值) - 勾选后,按
Tab键实际插入的是 4 个·,不是→ - 已有的
→不会自动转——全选文本 → 编辑 → 空白字符操作 → 制表符转为空格 - 注意:该转换依赖设置 → 首选项 → 编辑 → 制表符设置中的「制表符大小」值;若状态栏显示
2 SP却执行转换,结果会错层
全角空格(U+3000)和不间断空格(U+00A0)不会被 显示空格与制表符 功能识别,复制粘贴网页内容时特别容易带进来——它们不显示为 ·,但会让 Python 报错,且无法靠视觉定位。


















