vscode markdown预览默认不换行,需手动配置"markdown.preview.breaks": true才能使回车生效;该设置仅影响预览,不改变文件内容,且受工作区设置覆盖,需检查.settings.json并禁用冲突插件。

VSCode 默认不换行预览 Markdown,不是你配置错了,是它根本没默认开 —— 必须手动设 markdown.preview.breaks 才能让回车变成换行。
为什么 README.md 在预览里不换行
VSCode 的 Markdown 预览默认忽略单个回车(\n),只把空行当段落分隔。所以你写:
第一行 第二行 第三行
预览出来就是“第一行第二行第三行”连成一句。这不是渲染 bug,是 CommonMark 规范默认行为。
- 仅靠开启
editor.wordWrap没用 —— 那只影响编辑器里的代码显示,不影响预览窗 - 快捷键
Alt+Z也无效 —— 它只控制编辑区软折行,和预览无关 - 右下角语言模式切到 “Markdown” 后改
editor.wordWrap,同样不作用于预览
怎么让预览里按回车就换行
加这一行配置即可,对所有 .md 文件生效:
"markdown.preview.breaks": true
操作路径:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS) - 输入
Open Settings (JSON),回车打开用户settings.json - 在
{}里加上面那行,保存
之后再打开任何 README.md,预览窗里敲回车就会立刻换行,不用空行、不用两个空格。
预览换行后缩进错乱、列表塌陷怎么办
开了 markdown.preview.breaks 后,有时列表项或代码块会因换行被解析错位。这不是配置问题,而是 VSCode 内置 Markdown 渲染器对软换行的兼容性限制。
- 避免在列表项末尾直接回车 —— 改用空行分隔更稳妥
- 代码块内不要手动换行,用
```包裹后由编辑器自动处理宽度 - 如果表格列内容过长导致预览错位,优先用
editor.wordWrap控制编辑区显示,而不是依赖预览换行
这个配置只影响预览,不改变文件实际内容,复制粘贴到 GitHub 仍按原始格式渲染。
为什么改了 settings.json 还是不生效
最常见原因是工作区(workspace)级设置覆盖了用户级配置。
- 检查项目根目录下是否有
.vscode/settings.json,里面是否写了"markdown.preview.breaks": false - 打开预览页后,按
Ctrl+Shift+P→ 输入Developer: Toggle Developer Tools,看 Console 是否报Failed to load markdown preview(插件冲突) - 禁用所有 Markdown 相关插件(如 Markdown All in One),只留 VSCode 原生预览,再测试
真正起效的只有用户级或工作区级的 markdown.preview.breaks,语言专属设置对它无效 —— 这点和 editor.wordWrap 不同,别往 "[markdown]": {...} 里塞。











