必须设"editor.renderwhitespace":"all"才能显示·和→,但若看不到→,是因"editor.detectindentation"自动将tab转为空格,需同时关掉该选项并设"editor.insertspaces":false;换行符¶还需额外开启"editor.rendercontrolcharacters":true。

开了 editor.renderWhitespace 却看不到 →,不是设置没生效,而是你根本没插入制表符——VSCode 默认把 Tab 转成了空格。
怎么让空格显示为·、制表符显示为→
核心只有一条配置:editor.renderWhitespace 必须设为 "all"(不是 true,也不是 "on")。设成 "boundary" 只在行首/行尾画点,缩进中间的空格和 Tab 全部隐身;"selection" 更是只在选中时才亮,日常排查基本没用。
- 在设置界面按
Ctrl + ,(macOS 是Cmd + ,),搜render whitespace,下拉选All - 或直接改
settings.json,加这一行:"editor.renderWhitespace": "all" - 改完立刻生效,无需重启 VSCode
为什么设置了 editor.renderWhitespace: "all" 却看不到 →
因为右下角状态栏显示的是 Spaces: 4,说明当前文件已锁定为空格模式:editor.detectIndentation 自动读取了前几行,把后续所有 Tab 键都转成了 4 个空格——编辑器里压根没有 \t,自然渲染不出 →。
- 验证方法:按
Ctrl + Shift + P→ 输入并执行Convert Indentation to Tabs,再按一次Tab,看是否出现 → - 真正要改的是输入行为:设
"editor.detectIndentation": false禁止自动探测,再设"editor.insertSpaces": false确保按Tab插入的是制表符 - 注意语言专属设置(如
"[python]"块)可能覆盖全局配置,需单独检查
怎么连换行符 ¶ 和回车符 ↵ 一起显示出来
editor.renderWhitespace: "all" 只管空格和制表符,\n、\r 这类控制字符必须靠另一个开关:editor.renderControlCharacters,且必须设为 true。
- 二者缺一不可:
"editor.renderWhitespace": "all"+"editor.renderControlCharacters": true - 开启后,换行符显示为
¶,回车符为↵,对排查.gitattributes换行问题、跨平台文件差异特别有用 - 快捷键
Ctrl + Shift + 8(macOS 是Cmd + Shift + 8)只能临时切换renderWhitespace,不会触发renderControlCharacters
工作区设置可能悄悄关掉你的显示
你在用户设置里设好了,但项目根目录下的 .vscode/settings.json 优先级更高。如果它写了 "editor.renderWhitespace": "none",或者在某个语言块里覆盖了值,你的设置就完全失效。
- 检查路径:
.vscode/settings.json→ 查是否有editor.renderWhitespace相关项 - 某些语言(如
markdown)默认禁用空白渲染,可在设置里切到「Language-specific Settings」→ 选对应语言确认 - 别把
editor.renderWhitespace或editor.renderControlCharacters提交到 Git,它们纯属本地视觉偏好,不是影响代码行为的配置
真正卡住人的从来不是怎么开显示,而是你盯着 · 和 → 看了半天,结果发现那些符号压根没被插入过——编辑器早把 Tab 吞掉转成空格了,连“画皮”的机会都不给。











