必须同时设置"editor.renderWhitespace": "all"和"editor.renderControlCharacters": true,并关闭"editor.detectIndentation"、设"editor.insertSpaces": false,才能完整显示·、→、¶等符号。

开一个设置就能让空格和制表符“现形”,但只设 editor.renderWhitespace 往往不够——你看到的 · 和 →,得先真实存在才行。
怎么让空格显示为·、制表符显示为→
核心是设 editor.renderWhitespace 为 "all",不是 true 或 "on"(后者无效):
- 在设置界面按
Ctrl + ,(macOS 是Cmd + ,),搜索render whitespace,下拉选All - 或直接编辑
settings.json,加这一行:"editor.renderWhitespace": "all" - 此时空格渲染为浅灰小圆点(·),制表符为带箭头符号(→),换行符默认不显示(需另配)
为什么开了 editor.renderWhitespace: "all" 却看不到 →
大概率不是设置没生效,而是编辑器里根本没制表符——editor.detectIndentation 自动把你按的 Tab 转成了空格:
- 右下角状态栏显示
Spaces: 4?说明当前文件已锁定为空格模式,按 Tab 插入的是 4 个空格,不是\t - 验证方法:按
Ctrl + Shift + P→ 输入Convert Indentation to Tabs执行,再按一次 Tab,看是否出现 → - 要让 → 真实存在,必须配对关闭自动探测:
"editor.detectIndentation": false,并明确设"editor.insertSpaces": false
换行符 ¶ 和回车符 ↵ 怎么一起显示
editor.renderWhitespace: "all" 只管空格和制表符,控制字符(如 \n、\r)需要额外开关:
- 必须同时开启
"editor.renderControlCharacters": true - 二者缺一不可:前者负责 · 和 →,后者才让 ¶ 和 ↵ 显形
- 这个组合对排查
.gitattributes换行问题、跨平台文件差异特别有用
工作区设置可能悄悄覆盖你的配置
你在用户设置里设好了 editor.renderWhitespace,但项目根目录下有 .vscode/settings.json,它优先级更高:
- 检查该文件是否写了
"editor.renderWhitespace": "none"或语言专属覆盖(比如"[python]"块里设了不同值) - 某些语言(如 Markdown)默认禁用空白渲染,需单独确认:
Ctrl + Shift + P→ 输入Preferences: Configure Language Specific Settings→ 查markdown - 快捷键
Ctrl + Shift + 8(macOS 是Cmd + Shift + 8)只是临时开关,不解决底层配置冲突
真正卡住人的从来不是怎么开显示,而是你盯着 · 和 → 看了半天,结果发现那些符号压根没被插入过——编辑器早把 Tab 吞掉转成空格了,连“画皮”的机会都不给。











