必须手动在用户设置中添加 "draw_white_space": "all",因菜单勾选“Show All”仅临时写入会话文件,重启即失效,且不触发换行符显示;该配置须严格满足:值为英文双引号包裹的小写"all"、键名拼写准确、仅置于「Settings – User」中。

必须手动在用户设置里加 "draw_white_space": "all",其他任何方式都不可靠。
为什么菜单勾选“Show All”后重启就失效
View → Render Whitespace → All 本质是运行一条临时命令,只写入当前会话的 session 文件,关掉 Sublime 就丢。它不修改用户配置,也不触发 show_line_endings,换行符类型(LF/CRLF)不会出现在右下角状态栏。团队协作或长期维护项目时,这种临时开关容易漏检缩进问题。
"draw_white_space": "all" 的三个硬性要求
这个配置项极敏感,错一个就静默失效:
- 值必须是英文双引号包裹的字符串
"all",写成true、all(没引号)、"All"(大小写错)都不行 - 键名必须是
draw_white_space,拼成draw_whitespace或white_space会被忽略 - 必须加在 Preferences → Settings 右侧「Settings – User」里,加在左侧默认设置或语法专属设置中无效
空格显示为·但看不到→?检查 translate_tabs_to_spaces
→ 只代表文件里真实存在的 \t 字符。如果当前文件启用了 "translate_tabs_to_spaces": true(很多 Python 项目默认开),那按 Tab 键插入的是空格,不是制表符——所以你只会看到 ·,看不到 →。
- 右下角状态栏显示 “Tab Width: 4 (Spaces)” 表示已转空格
- 想确认原始缩进结构,可临时设
"translate_tabs_to_spaces": false,再重新打开含 \t 的文件 - 光标放在符号上,看左下角状态栏提示是
tab还是space,这是唯一准确判断方式
换行符 ¶ 怎么显示出来
draw_white_space 不管换行符,¶ 是另一个开关:"show_line_endings": true。它不渲染符号到行尾,但会让右下角状态栏实时显示 LF / CRLF / CR,并支持点击切换。这个设置常被遗漏,导致你以为“空格显示了,怎么换行没标?”——其实是它自己关着。
某些语法高亮主题(如 Markdown)可能抑制 ¶ 渲染,此时切到 Plain Text 再试。如果文件混用 \r\n 和 \n,开启后能一眼看出 ¶ 位置轻微错位,这对跨平台协作很关键。

















