必须设"draw_white_space":"all"和"show_line_endings":true才能永久显示空格(·)、制表符(→)和换行符(¶/↵);需在settings–user中用英文双引号配置,且二者为并列独立设置。

必须设 "draw_white_space": "all" 才能真正看到空格(·)、制表符(→)和换行符(¶/↵)——菜单里的「Show Hidden Characters」只是临时开关,不存档、不显示换行符、关掉就失效。
怎么永久开启空格和制表符显示
打开 Preferences → Settings,在右侧 Settings – User 中添加这一行:
"draw_white_space": "all"
注意三点:
- 必须用英文双引号包裹
"all",写成true、on或漏引号都会导致整个配置解析失败,静默失效 - 必须改 Settings – User,改 Settings – Default 无效(它是只读的)
- 保存后立即生效,无需重启 Sublime,所有已打开/新打开的文件都适用
为什么加了 "draw_white_space": "all" 还看不到换行符
draw_white_space 只管空格和制表符,换行符(¶ 或 ↵)是否显示,由另一个独立配置控制:
"show_line_endings": true
它和 draw_white_space 是并列关系,不是子属性。不加这行,哪怕 draw_white_space 设为 "all",你也看不到换行符号。
Windows 换行(\r\n)显示为 ¶,Unix(\n)显示为 ↵,这是有意为之,用来暴露混用问题。右下角状态栏会显示当前换行类型(如 CRLF),点击可手动切换。
空格显示为 ·,制表符显示为 →,但看不清或根本没出现
常见原因不是配置错了,而是被其他设置或主题掩盖了:
- 如果只看到 · 看不到 →,先确认
translate_tabs_to_spaces是false:设为true时按 Tab 插入的是空格,文件里压根没有\t,自然不渲染 → - 如果 · 极淡甚至看不见,大概率是配色方案把
white_space_foreground设得太浅,优先调大font_size(比如设为 14)比换主题见效更快 - 如果 → 显示模糊或错位,不是字体问题就是混合缩进:同一文件里有的行用 4 个空格,有的用 1 个
\t(即使tab_size都是 4),视觉对齐但字符本质不同——此时运行命令面板里的 Convert Indentation to Spaces 更治本
Python/YAML 等缩进敏感语言必须开 "all",别用 "selection" 或 "boundary"
"boundary" 会跳过纯空格行首尾、缩进行末尾等关键位置的空格;"selection" 更危险——不选中就等于没开。Python 报 IndentationError 时你根本看不到问题在哪,YAML 解析器直接拒绝含制表符的文件。
协作场景下最常被忽略的一点:别人提交的文件里藏了 Tab,你本地没开 draw_white_space 就直接编辑、保存,Sublime 默认会沿用原文件缩进方式(哪怕你设置了 translate_tabs_to_spaces,它也只管新增行)。结果就是你“修”完的文件缩进看起来整齐,实则空格和 Tab 混在一起,Git diff 看不出,CI 却报错。











