先说结论:对齐改分隔行,冒号位置决定方向

表头那一行自己没有任何对齐语法。真正控制表头居中、靠左、靠右的,是紧跟在表头下面的分隔行(全是短横线的那一行)——在对应列的短横线两侧加英文冒号:

  • :--- —— 左对齐(冒号在左)
  • :---: —— 居中(两边都有)
  • ---: —— 右对齐(冒号在右)
  • --- —— 不加冒号,默认左对齐

改之前(三列都是默认左对齐):

| 姓名 | 金额 | 状态 |
| --- | --- | --- |
| 小明 | 1200 | 已发货 |
| 小红 | 860 | 待付款 |

改之后(分隔行加上冒号,表头跟着整列一起居中):

| 姓名 | 金额 | 状态 |
| :---: | :---: | :---: |
| 小明 | 1200 | 已发货 |
| 小红 | 860 | 待付款 |

注意:冒号是加在分隔行对应列的短横线上,不是加在表头文字旁边。在表头单元格里补空格、塞冒号,都改变不了对齐。

对齐不生效,先查两件事。一,符号必须是半角英文:冒号 : 不能写成中文全角「:」,短横线 - 也不能是全角——从别的文档复制粘贴最容易带进全角符号,渲染器直接不认(mdview 在 v1.0.104 修过对齐语法不生效的问题,遇到失效先查这个)。二,冒号加错了行:它是分隔行的语法,写在表头行或数据行里都没有用。

只想动表头、内容不动?标准语法做不到

分隔行冒号是按整列生效的:某一列写了 :---:,表头和这一列的所有内容一起居中。而实际写文档时非常常见的需求是「表头居中、内容左对齐」——标题醒目,正文好读。这种一半一半的对齐,标准 Markdown 里没有开关,两条路:

  • HTML 兜底:把表格改写成 <table>,表头写 <th style="text-align:center">。能实现,但整张表失去 Markdown 的简洁,维护起来也麻烦;
  • mdview 的表头独立对齐:源码层面支持给单个表头单元格写属性——
| [姓名]{style="text-align:center"} | 金额 |
| :--- | ---: |
| 小明 | 1200 |
| 小红 | 860 |

渲染出来:「姓名」表头单独居中,「金额」整列(含表头)右对齐。这套写法 mdview 直接支持,编辑后保存不丢;它属于属性扩展语法(Pandoc 一族),在 GitHub 等只认标准语法的场合会原样显示这串文字——文档要多平台流转的话,用前先想清楚。

记不住语法,就用菜单点

按 F2 就地编辑:右键列菜单,两组对齐各管各的

用 mdview 打开 .md 文件,按 F2,页面还是渲染好的样子,鼠标移到表格上边缘浮现列手柄,右键打开列菜单。对齐相关的正好两组:

  • 「表头左对齐 / 表头居中 / 表头右对齐 / 表头默认对齐」——只动表头那一格,源码里自动写好属性语法,内容纹丝不动;「表头默认对齐」是撤掉单独设置,表头回到跟随整列的状态;
  • 「内容左对齐 / 内容居中 / 内容右对齐」——标准的那套整列对齐,对应分隔行冒号,表头跟着内容一起动。

点完即时生效,改完自动保存(停笔一秒左右静默写入文件),Ctrl + Z 可撤销。冒号在左还是在右不用背,点一遍看效果就行。

按 F3 分屏编辑:手改冒号,右边当场验收

愿意自己写冒号的话,F3 分屏编辑更稳:左边改分隔行,右边表头的方向立刻跟着变。不小心敲成全角冒号,右边纹丝不动,当场就暴露了,不用存盘再切窗口验证。两个模式按 F2 / F3 可直接互切,都自动保存。

小结

想做的事手改源码mdview F2 列菜单
表头随整列居中 / 靠右分隔行对应列写 :---: / ---:「内容居中 / 内容右对齐」
只动表头、内容不动标准语法做不到;HTML 表格或 mdview 属性语法「表头居中 / 表头右对齐」
撤掉表头的单独设置删掉表头里的属性写法「表头默认对齐」
对齐写了没反应查全角冒号、冒号是否加在分隔行F3 实时预览当场暴露

表格语法想系统过一遍(对齐、列宽、合并单元格),见表格完全指南;表头下面的各列内容怎么对齐、数字为什么该右对齐,下一篇专门讲;从零建一张表见怎样添加一个表格;mdview 编辑器的全部快捷键整理在这篇速查里。