必须将"draw_white_space":"all"和"show_line_endings":true添加至用户设置中才能稳定、完整显示空格(·)、Tab(→)和换行符(¶),值须为英文双引号包裹的字符串,保存即生效,无需重启。

必须改用户配置里的 "draw_white_space": "all",其他方式都不稳定或不完整。 菜单里的「Show Hidden Characters」只是临时开关,不保存、不触发重绘、不显示换行符,且新版 Sublime 已经弱化甚至移除了这个菜单项。真要全局、持久、完整地看到空格(·)、Tab(→)和换行符(¶),只有一条路:改配置。
怎么加 "draw_white_space": "all" 才生效
打开 Preferences → Settings,右侧用户设置面板里直接添加这一行(注意格式):
{ "draw_white_space": "all" }关键点:
- 值必须是字符串
"all",写成true、all(没引号)、"ALL"都不识别 - 必须用英文双引号,中文引号或单引号会导致 JSON 解析失败,整块配置失效
- 加完就保存,不用重启,当前所有已打开文件立刻刷新显示
- 如果只看到
→看不到·,大概率是文件里确实没空格——比如启用了"translate_tabs_to_spaces": true,按 Tab 插入的全是空格,那自然全显示为·
为什么换行符(¶)还是不显示
"draw_white_space": "all" 控制空格和 Tab,但换行符显示由另一个独立开关管:"show_line_endings": true。它不依赖 indent guides 或其他设置,单独启用即可:
{ "draw_white_space": "all", "show_line_endings": true }常见误解:
- 以为
draw_indent_guides会影响换行符 —— 它只画缩进线,和 ¶ 无关 - 以为菜单勾选一次就能永久显示 ¶ —— 实际上那个操作根本不触发改换行符渲染逻辑
- 看到右下角显示
CRLF或LF就以为换行符已“可见” —— 那只是状态提示,不是符号渲染
大文件或日常使用时怎么平衡可读性和性能
"all" 在几万行的 log 或数据文件里会明显拖慢渲染,尤其低配机器。这时候别硬扛,换策略:
- 临时排查缩进问题?用命令面板
Ctrl+Shift+P输入Set Setting - User,快速切回"selection"模式,只在选中区域显示空白符 - 想长期兼顾?把
"draw_white_space"设为"selection",需要看全量时再手动切"all",比每次开大文件都卡住强得多 - 配色方案太淡看不清
·和→?不是配置错了,是主题本身对white_space的 color 定义太浅,换主题或微调color_scheme更直接
最常被忽略的一点:很多人反复试菜单、装插件、查文档,却没意识到 Sublime 从 3.x 就内置了这套机制,只是默认关着;而真正起效的只有那一行 JSON,不多不少,不靠插件,不靠快捷键组合,也不靠“重启生效”这种过时经验。

















