必须同时设置"draw_white_space":"all"和"show_line_endings":true才能稳定显示空格·、Tab→及换行符¶/↵;二者须并列写入Settings–User中,值类型、引号、拼写及位置任一出错均静默失效。

必须在 Settings – User 里写 "draw_white_space": "all",其他任何方式都不稳定——菜单里的「Show Hidden Characters」只闪一下,"selection" 值根本看不到缩进开头的空格,true 或 on 会静默失效。
怎么加配置才真正生效
打开 Preferences → Settings – User,只改右侧 JSON 内容,在已有大括号内加一行:
{"draw_white_space":"all"}
三个细节错一个就白配:
• 值必须是英文双引号包裹的字符串 "all",写成 all(没引号)、"All"(大小写错)、true 都无效
• 配置项名是 draw_white_space,拼成 draw_whitespace 或 white_space 编辑器直接忽略
• 只能加在 Settings – User(右侧),加在左侧 Default 或语法专属设置里完全不生效
保存后已打开的文件可能不立刻刷新,切换标签页或按一下方向键就能触发重绘。
为什么开了 "draw_white_space": "all" 还看不到 → 或 ·
不是配置错了,而是底层条件没满足:
• "translate_tabs_to_spaces": true(默认很多 Python 项目开启):此时按 Tab 插入的是空格,文件里根本没有 \t 字符,自然只显示 ·,不会出现 →
• 文件是只读状态(右下角标 RO):Sublime 会跳过空白字符绘制
• 刚执行过 "trim_trailing_white_space_on_save": true 并保存:行尾空格已被删,· 就没了
• 当前配色方案把 · 渲染得太淡,尤其浅色主题下几乎不可见;优先调大 font_size(比如设为 14),比换主题见效更快
show_line_endings 和换行符 ¶ 是独立开关
"draw_white_space": "all" 管不了换行符,¶ 或 ↵ 完全由另一个配置控制:
• 必须额外加 "show_line_endings": true 才能看到每行末尾的 ¶(Windows 换行)或 ↵(Unix 换行)
• 它和 draw_white_space 是并列关系,不是子属性;不加这行,哪怕 draw_white_space 设为 "all",你也看不到换行符号
• 开启后右下角状态栏会标出当前换行类型(如 CRLF),点击还能手动切换——Git 跨平台协作时,这个比 · 和 → 更关键
临时查看别动配置:用 Toggle White Space 命令
代码审查中途想快速确认某几行有没有混用缩进,又不想改长期偏好?
• 按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS)
• 输入 Toggle White Space 回车
• 它瞬间在 "all" 和 "none" 之间切换,当前会话有效,关掉 Sublime 就恢复原状
注意:Toggle White Space 不启用 show_line_endings,所以 ¶ 不会出现;它也不同于菜单里的「Show Hidden Characters」,后者行为不稳定,常漏掉 ·
真正难的从来不是让符号显示出来,而是看到 → 和 · 后,得立刻判断:这行缩进该留还是该转,那个行尾空格是格式污染还是对齐需要——这时候状态栏的 Tab Width、CR/LF 和右下角语法标识,比符号本身更值得盯住看。

















