MarkdownPreview仅负责将.md转HTML并在浏览器渲染,不提供自动排版功能;排版需依赖自定义CSS、第三方主题或专用格式化插件如tablemagic、MarkdownEditing等,且所有配置均需首次手动执行Preview in Browser后才生效。

MarkdownPreview 不能自动排版,只负责渲染
很多人误以为 MarkdownPreview 插件能“自动排版”文档,比如居中标题、调整段间距、美化代码块——它完全不干这事。MarkdownPreview 的唯一职责是把 .md 文件转成 HTML 并在浏览器里打开,样式全靠 CSS 控制。它默认用的是极简的内置 CSS,没有任何排版增强逻辑。
如果你看到别人预览效果很清爽,大概率是他们手动加了自定义 CSS,或者用了第三方主题(如 github.css 或 markdown.css),而不是插件本身变聪明了。
- 想改字体/行高/标题缩进?得改
css" setting指向你自己的 CSS 文件 - 想让代码块带行号或主题色?得配
pygments_style或启用highlight_line_numbers - 别碰
enable_autoreload:2026 年起该字段已废弃,写进配置反而导致保存卡死
真正能自动排版的只有格式化插件,不是预览插件
所谓“自动排版”,实际指:自动对齐表格、统一列表缩进、补全空行、标准化标题层级、清理多余空格等。这些功能不在 MarkdownPreview 范围内,得靠专门的格式化工具:
-
tablemagic:专治表格,输入| a | b |回车自动补分隔行,Tab 跳转单元格,列宽实时对齐 -
MarkdownEditing+TrailingSpaces:前者提供语法感知(比如识别标题后自动缩进下一行),后者一键删末尾空格 -
SublimeLinter-contrib-markdownlint:检查是否符合标准 Markdown 风格(如列表前必须空一行、标题后不能紧接文字) - 别装
TableEditor:它在 ST4 上已彻底失效,调用view.is_primary()会直接报错
为什么 Ctrl+Shift+P 里搜不到 Format 命令?
常见原因不是没装插件,而是作用域没匹配上——tablemagic 和 markdownlint 都只在 text.html.markdown 或 text.md 作用域下激活。哪怕文件名是 readme.md,只要右下角显示 Plain text,所有格式化命令都静默失效。
- 必须点击右下角状态栏 → 搜索
Markdown GFM→ 选中(不是 “Markdown” 或 “Markdown Extended”) - 新建未保存的
untitled文件无法触发任何格式化,务必先Ctrl+S保存为.md - 装完
tablemagic后,光标放在表格任意行按Tab就能跳转,无需额外绑定快捷键 - 如果命令面板搜
Format Table没反应,说明当前视图没被识别为 Markdown,优先检查右下角语法标识
图片、公式、目录这些“排版元素”要单独开开关
它们默认全关闭,且开关位置和生效条件非常具体:
- 数学公式:
"mathjax_enabled": true必须写在Preferences → Package Settings → Markdown Preview → Settings – User里,且依赖网络加载 CDN;离线环境要用本地 MathJax,得额外配mathjax_url - 目录(TOC):
"enable_toc": true不起作用,正确字段是"toc": true,且只对含[TOC]或[toc]标记的文档生效 - 图片路径:永远相对于
.md文件所在目录解析,在/docs/intro.md中找的是/docs/img/logo.png,不是项目根目录 - Mermaid 图表:
"mermaid_enabled": true开启后,仍需确保浏览器支持 ES6+,旧版 Edge 或 IE 直接空白
最常被忽略的一点:所有这些配置项,都只在首次成功执行过 Markdown Preview: Preview in Browser 后才开始参与后续渲染——没手动点过第一次,改十遍配置也没用。


















