Sublime Text 显示空格需设 "draw_white_space": "all",制表符宽度用 "tab_width": 4 调整;配置必须写在 Preferences → Settings – User 中,值仅支持 "none"、"selection" 或 "all";开启后大文件有轻微渲染延迟,但不影响编辑性能。

怎么让 Sublime Text 显示空格和制表符
直接在菜单栏点【视图】→【显示不可见字符】,或者按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Set Setting - User 并回车,手动加一行配置更稳定。
默认勾选后只显示制表符(→)和换行符(¶),空格(·)默认不显示——这是很多人以为“没生效”的原因。
- 空格符号需要额外开启:
"draw_white_space": "all" - 制表符宽度可调:
"tab_width": 4(影响显示长度,不影响实际缩进逻辑) - 如果用了插件如
TrailingSpaces,它会高亮末尾空格,但和原生显示是两套机制,别混用
为什么改了设置还是看不到空格
常见原因是配置写错位置,或者被其他插件覆盖。Sublime 的设置分三档:默认、用户、语法专属,只有 Preferences.sublime-settings(用户)里的 draw_white_space 才全局生效。
- 必须写在
Preferences → Settings – User里,不是Settings – Syntax Specific - 值只能是
"none"、"selection"或"all";写成true或"show"会静默失效 - 如果同时装了
BracketHighlighter或EditorConfig,它们可能重置tab_width,导致制表符看起来“对不齐”
不同语言下空格显示行为一致吗
基本一致,但 Python 和 YAML 这类靠缩进的语法,制表符混用会导致 IndentationError,此时显示不可见字符就不是“为了好看”,而是排错刚需。
- Python 文件中,
tab_width设为 4 但实际用了 2 空格缩进,视觉上对齐,执行时报错 - YAML 要求纯空格,一旦出现制表符,解析器直接拒绝——这时
draw_white_space: all能一眼揪出问题行 - JS/HTML 中空格多是格式问题,影响小,但团队协作时统一缩进风格仍需靠这个功能确认
性能和兼容性要注意什么
开启 draw_white_space: all 对大文件(>10MB)有轻微渲染延迟,尤其带大量注释的代码。这不是 bug,是 Sublime 渲染策略决定的。
- 不会影响编辑速度或保存行为,只是 UI 层叠加符号
- Sublime Text 3 和 4 行为一致,但 ST2 不支持
"all",只能显示制表符和换行符 - 如果用的是便携版或企业锁版,某些策略组会禁用不可见字符渲染,此时菜单项变灰且配置无效
真正容易被忽略的是:空格显示开了,但光标移动仍按原始字符计算——比如一个制表符占 4 列宽,但 ← 键只跳 1 个字符位。这时候得靠 Ctrl+← 跳单词,而不是依赖视觉对齐来判断光标位置。










