vscode对markdown文件默认不换行,是因为官方为[markdown]语言默认设了"editor.wordwrap": "off",旨在优先保障源码结构可读性;需在语言专属设置中显式配置"editor.wordwrap": "on"并配合"editor.wrappingindent": "indent"修复缩进错乱,且表格与代码块默认不软换行。

为什么 Markdown 文件默认不换行
VSCode 对 [markdown] 语言默认设了 "editor.wordWrap": "off",不是你漏配,是官方刻意为之——它假设 Markdown 编辑者更关注源码结构(比如列表缩进、链接语法),而非长段落阅读体验。所以哪怕你全局设了 "editor.wordWrap": "on",打开 .md 文件时仍可能顶着水平滚动条看文字。
怎么让 Markdown 文件默认自动换行
必须显式覆盖语言专属设置,不能只靠全局配置:
- 打开任意一个
.md文件 - 点击右下角状态栏的
Markdown语言标识 - 选 Configure 'Markdown' language based settings
- 在弹出的
settings.json片段里,加这一行:"editor.wordWrap": "on"
注意:[markdown] 必须写在用户或工作区 settings.json 的顶层对象里,不能嵌套;别用 "auto" 或 "inherit",它们对 Markdown 几乎无效。
Markdown 表格和代码块里还是一长条?
表格单元格、``` 代码块、内联代码 `inline` 默认不参与软换行——这是设计行为,不是 bug。解决方法分场景:
基于三引擎设计,从微信文章、新闻和博客网页提取干净内容,支持标题作者日期元数据,多格式和批量处理。
- 纯文本段落:确保
"editor.wordWrap": "on"已生效,长句会按空格/标点折行 - Markdown 表格:列宽由内容撑开,换行只发生在单元格内有空格处;若某列全是无空格字符串(如长 URL),它仍溢出——此时可手动插入
(软连字符)或用 Prettier +proseWrap: "always"格式化 - 代码块:编辑器不会折行,但预览视图(
Ctrl+Shift+V)会按容器宽度折;如需源码级换行,得用插件如markdown-wrapping或正则替换
换行后缩进错乱、列表对齐崩了怎么办
默认软折行会让第二行顶到行首,破坏 Markdown 的层级视觉。加这一行修复:
"editor.wrappingIndent": "indent"
它会让折行后的子行继承上一行的缩进(比如列表项前的 - 或缩进空格)。另外注意:editor.wordWrap 是纯渲染层开关,复制粘贴、Git 提交、导出 HTML 都不受影响——你看到的折行,别人看不到,也不进版本库。
真正容易被忽略的是:语言专属设置优先级高于全局,且 [markdown] 和 [markdown.preview] 是两套配置,预览效果不等于编辑区效果。










