必须同时配置"draw_white_space":"all"和"show_line_endings":true才能显示空格(·)、制表符(→)及换行符(¶/↵);前者控制空白字符渲染范围,后者专管行尾符号显示,二者并列且缺一不可。

必须在 Settings – User 里写 "draw_white_space": "all",其他任何方式都不可靠。 菜单里的“Show Hidden Characters”只是临时切换,关掉编辑器就失效;写错引号、大小写、拼写或放错配置面板,都会静默不生效。
为什么 "draw_white_space": "all" 总是不显示 → 符号
→ 只在文件里真有 \t 字符时才出现。常见失效原因:
-
translate_tabs_to_spaces是true:按 Tab 插入的是空格(·),不是制表符(→);右下角若显示Spaces: 4就是这种情况 - 文件是只读状态(右下角标 RO):Sublime 会跳过空白字符绘制
- 刚执行过
trim_trailing_white_space_on_save:行尾空格被删了,· 就没了 - 文件里压根没
\t—— 比如全用空格缩进的 Python 项目,自然看不到 →
draw_white_space 的可选值和实际影响
它控制的是「渲染范围」,不是开关类型:
-
"none":默认值,什么也不显示 -
"selection":只在你选中文本时显示 · 和 →,松手即消失 —— 容易漏掉缩进行首的混用 -
"trailing":只标行尾空格,适合清理无意义空白,但看不出缩进结构 -
"all":唯一能暴露所有位置(行首缩进、行中对齐、行尾)的设置,调试格式问题必须用它
注意:"all" 不显示换行符 ¶,那是 show_line_endings 控制的。
配合 show_line_endings 查 Git 换行符警告
Git 报 ^M 或提示 CRLF/LF mixed 时,光看 · 和 → 不够,得确认换行符类型:
- 加
"show_line_endings": true后,每行结尾显示 ¶(Windows)、↵(Unix)或 ⌍(旧 Mac) -
draw_white_space和show_line_endings完全解耦:一个管空格/Tab,一个管换行符 - 典型协作配置就是:
{"draw_white_space":"all","show_line_endings": true} - 右下角点击换行符标识(如 CRLF)可临时切换,菜单 File → Line Endings → Unix (LF) 可批量转换
真正难的不是让符号出来,而是看到 → 和 · 并存时,立刻判断哪一行该留、哪一行该转——比如 Python 缩进里混着 → 和 ·,必须统一为 · 才能过 IndentationError 校验。


















