必须设"draw_white_space":"all"才能稳定显示空格(·)和制表符(→),需在Settings–User右侧JSON中用英文双引号添加,值错、拼错或位置错均静默失效;看不到→通常因文件无真实\t(如translate_tabs_to_spaces为true)。

不用装插件。 Sublime Text 自带 draw_white_space 设置,开就完事,装插件反而多一层维护和兼容风险。
怎么让空格(·)和制表符(→)立刻显示出来
打开 Preferences → Settings,只动右侧「Settings – User」那一栏,在大括号里加一行:
{"draw_white_space": "all"}
- 必须用英文双引号,值必须是字符串
"all",写成true、all(没引号)、"All"(大小写错)都会静默失效 - 保存后已打开的文件可能不立即刷新,按一下方向键或切换标签页就能触发重绘
- 空格显示为浅灰小圆点
·,制表符显示为浅灰右箭头→,符号颜色由当前配色方案控制,不是 Sublime 硬编码的
为什么开了 draw_white_space 还看不到 →
不是配置没生效,而是文件里压根没有真实 \t 字符。常见原因:
-
translate_tabs_to_spaces是true:此时按 Tab 键插入的是空格,文件里全是·,自然看不到→;右下角状态栏若显示Spaces: 4就是这个情况 - 文件是只读状态(右下角标 RO):Sublime 会跳过空白字符绘制
- 刚执行过
trim_trailing_white_space_on_save:行尾空格被删了,·就没了 - 想确认原始缩进结构?临时关掉转空格:
"translate_tabs_to_spaces": false,再重新打开文件或粘贴含真实\t的文本
draw_white_space 和缩进逻辑完全无关
它只管「画出来」,不管「怎么插」或「怎么缩进」:
-
draw_white_space控制可视化,tab_size控制一个\t渲染多宽,translate_tabs_to_spaces控制 Tab 键插什么——三者互不影响 - 你可以开着
"draw_white_space": "all",同时设"translate_tabs_to_spaces": false,这样 Tab 键仍插\t,且你能清楚看到它 - 右下角状态栏显示
Indentation: Mixed才是真正危险信号,说明文件里→和·混在缩进位置,Python 会直接报IndentationError
真正难的不是让符号显示出来,而是判断哪些 · 和 → 是语法必需(比如 JSON key 后的空格)、哪些是缩进污染(比如 Python 函数体里某几行开头是 → 其他是 ····)——可视化只是第一步,清理动作还得靠 Convert Indentation 命令或手动校验。

















