必须同时设置"editor.renderwhitespace": "all"和"editor.rendercontrolcharacters": true才能显示·、→、¶;仅设前者无法渲染换行符¶和回车符↵,因后者是控制字符渲染的开关。

必须设 editor.renderWhitespace 为 "all",且同时启用 editor.renderControlCharacters 才能真正看到 ·、→、¶。只改一个配置,必然漏符号。
为什么设了 editor.renderWhitespace 却看不到 → 或 ¶
根本原因不是设置没生效,而是两个开关没配齐:editor.renderWhitespace 只管“画哪些空白”,editor.renderControlCharacters 才是“允许画控制字符”的电源开关。缺一不可。
-
"editor.renderWhitespace": "all"能让空格变·、制表符变→ - 但换行符
¶、回车符↵必须靠"editor.renderControlCharacters": true才会渲染 - 如果只开前者,你按 Tab 键后右下角显示
Spaces: 4,说明编辑器根本没插入\t,自然也渲染不出→
全局 settings.json 里怎么写才可靠
直接编辑用户级 settings.json(命令面板输入 Preferences: Open Settings (JSON)),加这两行:
"editor.renderWhitespace": "all", "editor.renderControlCharacters": true
注意几个关键点:
- 值必须是字符串
"all",不是true或"on",否则静默失效 -
"boundary"模式会漏掉中间孤立空格和缩进层级细节,排查格式问题时不推荐 - 别漏逗号——如果前面已有配置,这一行末尾要加英文逗号,否则 JSON 解析失败
- 工作区
.vscode/settings.json优先级更高,如果项目里有同名配置,会覆盖你这里的设置
按 Tab 还是不显示 →?检查输入行为是否被劫持
显示空白字符只是“可视化”,前提是文件里真有制表符。VSCode 默认开启 editor.detectIndentation,它会读取前几行缩进风格,并把后续所有 Tab 键转成空格。
- 看右下角状态栏:显示
Tab Size: 4才说明\t真实存在;Spaces: 4表示已被转为空格 - 临时验证:按
Ctrl+Shift+P→ 输入Convert Indentation to Tabs执行,再按一次 Tab,看是否出现→ - 根治办法:在
settings.json中加上"editor.detectIndentation": false和"editor.insertSpaces": false - 语言专属设置(如
"[python]"块)可能覆盖全局配置,需单独检查
最常被忽略的是:开了 renderWhitespace 却没开 renderControlCharacters,或者被工作区配置悄悄关掉。确认这两个布尔/字符串值都显式存在、拼写正确、未被覆盖,才是关键。











