sublime text中需设"draw_white_space":"all"才能显示空格(·)、制表符(→)和行尾空格;制表符显示需确保文件含\t且"translate_tabs_to_spaces":false;换行符¶由"show_line_endings":true单独控制;临时查看可用toggle whitespaces命令。

怎么让空格和制表符真正“露出来”
Sublime Text 默认把空格( )、制表符(\t)和换行符(\n)全藏起来,你得主动告诉它:“给我画出来”。最直接有效的办法是设 "draw_white_space": "all" —— 它不是开关按钮,而是配置项,改了就永久生效。
-
"all"是唯一能同时显示空格(·)、制表符(→)和行尾空格的值;"selection"只在选中时显示,容易漏掉未选中的缩进问题 - 必须写在 Preferences → Settings 的右侧(用户设置)里,左侧是默认设置,改了不生效
- 改完不用重启,保存即刻刷新,但当前文件若已打开,可能需手动触发一次重绘(比如切换标签再切回来)
为什么制表符有时不显示为 →
制表符显示为 → 有两个硬性前提:文件里真有 \t 字符,且 "translate_tabs_to_spaces" 是 false。如果你开启了自动转空格(很多 Python 项目默认开),那所有 Tab 都被悄悄换成空格了,自然看不到 →。
- 检查当前文件是否启用了转空格:右下角状态栏看是否写着 “Tab Width: 4 (Spaces)”;如果是,说明
\t已不存在,只会有 · - 想验证原始缩进结构,临时关掉它:
"translate_tabs_to_spaces": false,再重新打开文件(或粘贴原始含\t的文本) - 注意:关掉后按 Tab 键会插入真实
\t,团队协作前务必确认风格统一,否则 Git diff 里全是^I
换行符 ¶ 怎么控制显示
换行符(\n)的显示和空格/制表符是两套机制:"show_line_endings": true 单独控制 ¶,它不依赖 "draw_white_space",开了就显示,关了就隐藏。
- 这个设置常被忽略,导致你以为“空格显示了,怎么换行没标?”——其实是它自己关着
- 如果文件混用
\r\n和\n(比如从 Windows 和 macOS 交叉编辑),开启后能一眼看出不一致,¶ 符号位置会轻微错位 - 某些语法高亮主题(如 Markdown、reStructuredText)可能抑制 ¶ 显示,此时切到
Plain Text或Python再试
临时查看别折腾配置文件
代码审查中途突然想瞄一眼缩进,又不想动配置?用命令面板快捷切换最省事。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Toggle Whitespaces回车 —— 它直接翻转draw_white_space值,秒开秒关 - 这个操作只影响当前会话,关掉 Sublime 再开就恢复原设置,适合快速排查而不污染长期偏好
- 注意:如果之前没设过
draw_white_space,首次运行Toggle Whitespaces会把它设成"selection",不是"all",所以第一次建议先手动配好"all"再用这个命令
最容易被忽略的是:空格显示为 ·,但颜色太淡看不清——这不是设置没生效,而是当前主题对 white_space 的 color scope 设得太浅。换深色主题或手动调高 editor 的 foreground contrast 才能看清,否则以为功能坏了。










