启用 "draw_white_space": "all" 可同时显示空格(·)、制表符(→)和行尾空格,无需重启,保存即生效;配合 "show_line_endings": true 可额外显示换行符(¶)。

怎么让空格和 Tab 立刻显示出来
直接改配置,"draw_white_space": "all" 是唯一能同时看到空格(·)、制表符(→)和行尾空格的设置。它不是开关按钮,也不是插件,是 Sublime 内置的 JSON 配置项,改完保存就生效,不用重启。
- 打开 Preferences → Settings,只动右侧「Settings – User」那一栏
- 在里面加一行:
"draw_white_space": "all"(注意:必须用英文双引号,值是字符串"all",不是true或all) - 保存后,已打开的文件可能需要切换标签页或光标跳转一次,才会刷新显示
为什么选 "all" 而不是 "selection"
选 "selection" 只在你拖选文字时才显示 · 和 →,一松手就藏起来——这会让你漏掉缩进层里的混用问题,比如 Python 文件里某几行用 Tab、其他用空格,根本发现不了。
-
"all"能暴露所有隐藏空白,包括行首缩进、行中分隔、行尾多余空格 -
"selection"适合临时检查某段,但不适合日常开发或代码审查 - 如果状态栏右下角显示的是
Tabs或Spaces,说明当前文件缩进类型已识别,但只有"all"才能让这个信息“可视化”出来
换行符(¶)为啥没显示?
"draw_white_space": "all" 默认不强制画出换行符 ¶,它只管空格和 Tab;要让每行结尾都标上 ¶,还得额外加一个开关:"show_line_endings": true。
- 这两个设置是独立的:
draw_white_space控制 · 和 →,show_line_endings单独控制 ¶ - 如果你在写 shell 脚本或配置文件,换行符是否 LF/CRLF 很关键,这时候建议一起启用
- 加完后用户设置看起来像这样:
{"draw_white_space": "all", "show_line_endings": true}
Tab 显示成 → 还是 ·?关键看这个设置
制表符能不能显示为 →,取决于 translate_tabs_to_spaces 是否为 false。如果它是 true(很多 Python 项目默认开启),那按 Tab 键插入的是空格,文件里根本没有 \t 字符,自然看不到 →,全都是 ·。
- 想确认当前文件有没有真实 Tab:先确保
translate_tabs_to_spaces是false,再看有没有 → - 想统一格式:用菜单 Convert Indentation → Convert to Spaces 或命令面板运行
Indentation: Convert to Spaces - 混合缩进最常出现在粘贴代码、跨编辑器协作时,
"draw_white_space": "all"是第一道排查工具,但不能代替清理动作











