draw_white_space只在settings–user中生效,语法专属设置无效;必须设为"all"(英文双引号、小写)、键名准确、位置正确;换行符需额外配置show_line_endings:true。

语法专属设置里加 draw_white_space 无效
Sublime Text 的 draw_white_space 配置 **只在全局用户设置(Settings – User)中生效**,写在语法特定设置(如 Python.sublime-settings、Markdown.sublime-settings)里会被完全忽略。这不是 bug,是 Sublime 渲染机制决定的——空白字符绘制由视图层统一控制,不随语法切换而变化。
draw_white_space 必须写在 Settings – User 且格式严格
想让它起作用,只有一条路径:Preferences → Settings – User,在右侧 JSON 中添加:
{"draw_white_space": "all"}
三个关键点不能错:
- 值必须是英文双引号包裹的字符串
"all",写成true、all(没引号)、"All"(大小写错)都静默失效 - 键名必须是
draw_white_space,拼成draw_whitespace或white_space编辑器直接跳过 - 只能加在 Settings – User 右侧,左侧 Settings – Default 是只读的,改了也白改
想按文件类型差异化显示?用命令面板临时切
语法设置不支持差异化 draw_white_space,但你可以手动适配场景:
- 编辑 Python 文件时需要看清缩进混用 → 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入View: Toggle Invisible Characters临时开启 - 写 Markdown 时觉得
·太干扰 → 同样用命令面板执行一次,立刻关闭 - 不想每次手动切?把
"draw_white_space": "selection"设为默认,选中代码时才显示,兼顾可读性与效率
换行符 ¶ 和制表符 → 显示不出来?别怪语法设置
draw_white_space 管空格和制表符,但换行符 ¶ 或 ↵ 需要另一个独立开关:show_line_endings。它也不认语法设置,同样得加在 Settings – User 里:
{"draw_white_space": "all", "show_line_endings": true}
常见误区:
- 只设
"draw_white_space": "all"却看不到¶→ 缺少"show_line_endings": true - 看到
·但没有→→ 文件启用了"translate_tabs_to_spaces": true,实际没有\t字符 - 符号极淡或错位 → 不是语法设置问题,而是配色方案或字号太小,优先调大
font_size到 14+
→ 是 \t,但它的视觉宽度由 tab_size 决定;一行末尾的 ¶ 暗示 \r\n,可能正导致 CI 报 “CRLF will be replaced by LF”。这些信号只在你坚持用对配置的前提下才稳定可见。











