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

怎么让空格和制表符在Notepad++里“现形”
直接开 显示空格与制表符 就行,别点 显示所有字符——后者会把 ↵、¶ 全堆出来,干扰阅读。快捷键是 Ctrl+Shift+Space,菜单路径是 视图 → 显示符号 → 显示空格与制表符(英文界面为 View → Show Symbol → Show White Space and TAB)。启用后,空格显示为浅灰色圆点 ·,制表符显示为浅灰色箭头 →。
常见失效不是功能坏了,而是被环境卡住:
- 菜单项灰色?说明文档是只读状态,右键标签页 →
重新加载,或检查文件权限 - 开了却看不到
·或→?先确认编码:UTF-16 或 UTF-8-BOM 下渲染不稳定,另存为UTF-8(无 BOM)再重开 - 符号颜色太淡?进
设置 → 样式配置器 → 全局样式 → 空白字符,调亮前景色 - 光标所在行没刷新?滚动几行,或切到其他标签再切回来,强制重绘
为什么Python程序员必须开这个功能
因为 IndentationError: unindent does not match any outer indentation level 这类报错,90% 是混用 · 和 → 导致的——它们在默认状态下完全不可见。开了之后,一眼就能看出哪行缩进是安全的 ····,哪行藏着危险的 →。
真正出问题的那行代码往往没问题,问题藏在它上面三行里一个悄悄混进去的 →。网上抄的代码、Git 拉下来的脚本,只要没开这个,就等于蒙眼改缩进。
怎么一劳永逸避免制表符混入
光看见不够,得从源头掐断。进 设置 → 首选项 → 语言,勾选 以空格取代制表符,并设 制表符大小 为 4(或项目约定值)。勾选后,按 Tab 键实际插入的是 4 个 ·,不是 →;但已有的 → 不会自动转,得手动处理。
转换存量 →:
- 全选文本 →
编辑 → 空白字符操作 → 制表符转为空格 - 注意:该操作仅对当前文档生效,且依赖
设置 → 首选项 → 编辑 → 制表符设置中的制表符大小值 - 若状态栏显示
4 SP却执行“空格转制表符”,Notepad++ 会按 4:1 换算;但若实际缩进是 2 或 8,结果就会错层
全角空格和不间断空格怎么识别和清理
U+3000(全角空格)和 U+00A0(不间断空格)不会被识别为普通空格,显示空格与制表符 功能也看不到它们。这类字符常出现在复制粘贴的网页内容中,会导致 Python 报错但无法通过视觉定位。
清理方法:
- 用十六进制查找:
\x{3000}或\xa0(需开启正则模式) - 替换为普通空格
或直接删掉 - 批量处理前建议先用
搜索 → 查找全部确认是否真有这类字符,避免误删
最麻烦的不是找不到开关,而是开着它却忘了看——缩进问题从来不在报错那一行,而在它上面三行里藏着一个悄悄混进去的 →。


















