Sublime Text可通过命令面板临时开启“显示不可见字符”,或在用户设置中添加"draw_white_space": "all"永久启用;其值可选"none"、"selection"、"all",分别控制不显示、仅选区显示、全局显示空格、制表符和换行符。

Sublime Text 默认不显示空格、制表符、换行符等不可见字符,但可以通过内置设置一键开启 —— 不需要插件,也不用改配置文件,几秒钟就能看到所有隐藏符号。
怎么打开「显示不可见字符」开关
这是最直接的方式:按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板,输入 View: Toggle Invisible Characters 并回车。立刻就能看到 · 表示空格、→ 表示制表符、¶ 表示换行符。
这个操作是临时开关,每次重启 Sublime 都会恢复默认关闭状态。如果想永久生效:
- 打开
Preferences → Settings - 在右侧用户设置里添加:
"draw_white_space": "all" - 保存后,所有新打开的文件都会默认显示不可见字符
draw_white_space 的三个可选值区别
这个配置项控制显示哪些不可见字符,不同值影响肉眼识别效率和编辑流畅度:
-
"draw_white_space": "none":完全不显示(默认) -
"draw_white_space": "selection":只在选中文本区域内显示空格/制表符(适合临时排查缩进问题) -
"draw_white_space": "all":全局显示所有空格、制表符、换行符(最常用,但可能让大段文本显得杂乱)
注意:"all" 会显示 ¶ 换行符,而 "selection" 不会;另外,它对 tab 和 space 的视觉区分很清晰,能快速发现混用缩进的问题。
为什么有时开了也不显示?常见原因
不是所有场景都如预期生效,几个典型情况:
- 文件被设为「只读」模式(右下角显示
RO)时,draw_white_space可能失效 - 某些语法高亮方案(比如自定义的
.sublime-syntax)会覆盖空白字符渲染逻辑 - 开启了
trim_trailing_white_space_on_save且文件已保存,末尾空格被自动删掉,自然没得显示 - 终端类插件(如 Terminus)或内联输出面板中,该设置不生效 —— 它只作用于普通文本视图
更精细的控制:用颜色区分 tab 和 space
Sublime 本身不支持为不同空白字符配不同颜色,但可通过主题微调实现:
- 修改当前配色方案(
.tmTheme文件),添加invisibles规则 - 或安装轻量插件如
HighlightWords,配合正则\t/单独高亮 - 更实用的做法:用
Convert Indentation to Spaces或Indentation: Convert to Tabs命令统一缩进类型,再配合draw_white_space快速验证结果
真正难的不是显示出来,而是判断哪些空白该留、哪些该删 —— 比如 JSON 里键名后的空格不能动,而 Python 缩进里的混用 tab+space 必须清理。显示只是第一步,背后得有明确的代码规范支撑。










