必须安装Markdown All in One插件,VS Code原生不支持表格对齐,Format table命令仅由该插件提供;需手动选中整张表(含表头、分隔行及所有数据行),分隔行须严格使用|:---|、|---:|或|:---:|格式,禁用Prettier等冲突插件并关闭自动格式化。

表格格式化必须装 Markdown All in One,不是其他插件
VS Code 原生不支持表格对齐,Format table 命令只来自 Markdown All in One(不是 Markdown Preview Enhanced、不是 Prettier、也不是各种“Table Formatter”小插件)。装错插件,Alt+Shift+F 就没反应。
安装后检查设置里 markdown.extension.tableFormatter.enabled 是否为 true;如果命令面板里搜 Format table 找不到,说明插件未生效或当前文件语言模式不是 markdown(右下角确认显示 “Markdown”,不是 “Plain Text”)。
- 禁用所有其他表格格式化插件,避免命令冲突
- 不要依赖自动触发——VS Code 从不自动识别并格式化表格,必须手动选中
- 空表格(只有表头+分隔行)会被跳过,至少加一行
| | |再试
选中整张表是格式化的前提,漏一行就崩
Format table 只处理你当前选中的文本块,它不会猜边界。漏掉表头、跳过分隔行(第二行)、或少选最后一行数据,结果就是列数错乱、文字挤成一团、甚至删掉部分单元格内容。
安全做法:光标放在表格任意位置 → Ctrl+Shift+P → 输入 Markdown: Select table(该命令由 Markdown All in One 提供),一键选中完整结构。
- 必须包含:第一行(表头)、第二行(分隔行,如
|:---|---:|:---:|)、所有后续数据行 - 分隔行写错一个字符(比如
| —— |用了中文破折号、或|---|结尾漏|),插件直接放弃解析 - 粘贴来的表格常带多余空格或换行符,建议先运行
Remove trailing whitespace清理再选中
分隔行写法决定对齐,冒号位置不能错
插件靠第二行分隔行判断每列宽度和对齐方式。写法不对,对齐就失效,空格也救不回来。
Convert Chinese patent PDFs/DOCX/DOCs to structured Markdown. Supports patent publications (A/B/U) and office action documents (审查意见通知书/驳回决定/复审决定书/无效宣告请求审查决定书). Uses MinerU for high-quality OCR text extraction (falls back to Tesseract), Python scripts for
-
|:---|→ 左对齐(冒号在左) -
|---:|→ 右对齐(冒号在右) -
|:---:|→ 居中(冒号在左右都有) - 禁止:
| --- |(前后多空格)、|--|(连字符少于3个)、|——|(中文符号)
示例正确分隔行:|:---|---:|:---:|,对应三列:左、右、居中。
Prettier 会毁掉表格,必须显式隔离
哪怕你只在保存时启用 Prettier,它也会重排表格、删空格、强制居中,让手动调好的列宽全作废。这不是配置能绕开的——Prettier v3.0+ 的 "tablePipeAlign": false 仅控制竖线对齐,不管列宽和空格填充。
最稳妥方案:在表格上下加注释包裹
<!-- prettier-ignore-start --> | A | B | C | |:---|---:|:---:| | foo | bar | baz | <!-- prettier-ignore-end -->
- 别指望关掉 Prettier 的某个子规则就能保表格——它底层不把 Markdown 表格当结构化数据处理
- 如果项目强依赖 Prettier,建议把表格单独拆到独立 .md 文件中,或改用 HTML 表格(
<table>)绕过解析
表格排版真正的复杂点不在怎么写,而在「谁碰了它」——编辑器、插件、保存钩子、协作成员的本地配置,任何一个环节没对齐,格式就不可控。

















