Shift + Alt + F 仅格式化 Markdown 基础结构,不处理表格对齐、代码块美化及 PDF 排版;表格需用 Markdown All in One 插件手动选中并严格分隔行格式;代码块须切换语言模式后格式化;PDF 美化依赖自定义 CSS 注入。

Shift + Alt + F(Windows/Linux)或 Shift + Option + F(macOS)能直接格式化整个 Markdown 文档——但这不等于“排版一键搞定”,它只做基础结构对齐(如标题缩进、列表符号统一),不会调整字体、行距、页眉页脚或中英文混排效果。真正影响 PDF 输出质量的,是后续的 CSS 样式定制和表格/代码块的单独处理。
为什么Shift + Alt + F对表格没反应?
VSCode 默认的 Markdown 格式化器(如内置的或 Prettier)**完全忽略表格对齐逻辑**。它只管语法合法,不管视觉是否整齐。你看到的“歪表格”,根本不是格式化失败,而是压根没被处理。
- 必须装
Markdown All in One插件(不是 Markdown Preview Enhanced 或其他名字相近的) - 格式化前要手动选中整张表:包括表头行、分隔行(
|:---|---:|)、所有数据行——漏一行,列就错位 - 分隔行写法必须严格:
|:---|(左)、|---:|(右)、|:---:|(居中),多空格、少破折号、用中文符号都会失效 - 快捷键
Alt + Shift + F是插件绑定的“Format table”命令,不是全局格式化;若无效,用Ctrl + Shift + P输入Markdown: Format table手动触发
如何让代码块里的 Python/JS 也自动美化?
默认的 Format Document 只走 Markdown 解析流程,代码块内容会被原样保留。想让 ```python 里的代码也按 PEP8 或 ESLint 规则重排,得临时切换语言模式。
- 选中代码块内全部内容(不包括
```python和```行) - 点右下角语言模式 → 改成
Python或JavaScript - 按
Ctrl + K Ctrl + F(Windows/Linux)或Cmd + K Cmd + F(macOS)执行“Format Selection” - 完事后切回
Markdown模式,避免误格式化文档其他部分 - 别依赖
editor.formatOnSave自动处理代码块——它会把整个 .md 文件扔给 Markdown 格式化器,结果就是代码块被当普通文本缩进,反而更乱
PDF 导出后字体丑、中英文挤在一起?
这不是 VSCode 的问题,而是 Markdown PDF 插件(yzane 版)在 HTML → PDF 渲染阶段,用了默认的无衬线字体族,且未适配中文排版特性。解决路径只有一条:**写自定义 CSS 并指定给插件加载**。
- CSS 文件路径需在 VSCode 设置里显式配置:
markdown-pdf.cssPath,值为绝对路径(如/home/user/css/md-pdf.css) - 关键样式必须覆盖:
body的font-family(推荐"Noto Sans SC", "Helvetica Neue", sans-serif)、code块的font-family(用等宽字体如"Fira Code", "SFMono-Regular") - 中英文混排要加
text-rendering: optimizeLegibility和font-feature-settings: "liga",否则连字符、数字宽度会异常 - 别试图用
editor.fontFamily设置影响 PDF 输出——那是编辑器界面字体,和导出无关
真正卡住人的地方,从来不是“怎么按快捷键”,而是搞不清哪个环节该用哪套规则:表格靠插件选中处理,代码块靠手动切语言,PDF 排版靠外部 CSS 注入——三者互不感知,各自生效。漏掉任意一环,文档看起来就永远差一口气。



















