必须设 draw_white_space: "all" 才能稳定显示 · 和 →,需在 settings – user 中用英文双引号写为字符串"all",拼写、位置、格式任一错误均静默失效;show_line_endings: true 单独控制 ¶ 显示。

必须设 draw_white_space: "all" 才能稳定显示 · 和 →
菜单里的【View → Show Hidden Characters】或命令面板的 Toggle White Space 只是临时开关,关掉 Sublime 就失效,协作中极易遗漏。真正可靠的方式只有一种:在 Preferences → Settings – User 的右侧 JSON 中添加 "draw_white_space": "all"。
注意三个硬性条件,错一个就静默不生效:
- 值必须是英文双引号包裹的字符串
"all",写成true、all(没引号)、"All"(大小写错)都不行 - 配置项名必须是
draw_white_space,拼成draw_whitespace或white_space编辑器直接忽略 - 只能加在「Settings – User」里,左侧默认设置或语法专属设置中完全无效
保存后已打开的文件可能不立即刷新,切换标签页或按一下方向键就能触发重绘。
为什么开了 draw_white_space: "all" 还看不到 →
符号不出现,大概率不是配置错了,而是文件里压根没有 \t 字符。常见原因有:
-
translate_tabs_to_spaces是true:此时按 Tab 插入的是空格,文件里全是·,自然不会渲染→;右下角状态栏若显示Spaces: 4,就是这个情况 - 文件是只读状态(右下角标 RO):Sublime 会跳过空白字符绘制
- 刚执行过
trim_trailing_white_space_on_save:行尾空格被删了,·就没了
想确认原始缩进结构,得临时关掉转空格:"translate_tabs_to_spaces": false,再重新打开文件或粘贴含真实 \t 的文本。
show_line_endings 是独立开关,专管 ¶
draw_white_space 管不到换行符。¶ 完全由另一个配置控制:"show_line_endings": true。
两者完全解耦:
- 只开
"draw_white_space": "all"→ 显示·和→,但每行结尾没有¶ - 只开
"show_line_endings": true→ 只显示¶,没有·或→
跨平台协作时 Git 常报换行符混用警告(比如 ^M 或 LF/CRLF 提示),这时 ¶ 比 · 和 → 更关键——它直接对应 Git 输出里的换行类型。典型用户配置是:
{"draw_white_space":"all","show_line_endings": true}
临时查看别动配置:用 Toggle White Space 命令
代码审查中途想快速确认某段有没有混用缩进,又不想改长期偏好?按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Toggle White Space 回车。
它会瞬间在 "all" 和 "none" 之间切换,当前会话有效,关掉 Sublime 就恢复原状。
注意两点:
- 它不启用
show_line_endings,所以¶不会出现 - 它也不是菜单里的【Show Hidden Characters】,后者逻辑陈旧,有时漏渲染
真正难的从来不是让符号显示出来,而是看到 → 和 · 后,立刻分辨出哪一行该留 Tab、哪一段该转空格、哪个行尾空格其实是隐藏的格式污染——这时候右下角状态栏的 Tab Width、CR/LF 和语法标识,比符号本身更值得盯紧。











