Vtable 2.0 终于发布了,带来了与 1.x 系列截然不同的全新体验。这是一场彻底的改革,请不要以 1.0 的印象来对待它。我们对于 Vtable 的讨论也全部迁移于此。
如果用一句话介绍它,那就是:原生文档中的增强表格,丰富的功能和体验,比如合并单元格、高级样式和排版、更流利的换行系统等等。我们支持移动端,并做了专门的优化。
为了让不同需求用户都能搜到这个插件,我们尽量写的详尽(但或许还不能包含所有),文章较长,先上地址。
- 官方插件地址:Vtable - Obsidian Plugin
- GitHub 仓库地址:github.com/ming145/Vtable
开发理念
美的视觉
我们的插件轻量,主文件只有 300 KB,不占资源,启动快。经过简单设置,就能达到下面这样的效果——至少在一个 Markdown 文档当中,是看不出“外来感”的。
整体很干净,没有繁复的装饰,把注意力留给文字。

保证官方手感
底层完全自研,但操作体验刻意向官方表格靠拢,无论是所见即所得、左右上下控制换单元格,还是拖动手柄、颜色的浓淡深浅,都是相像的。
在这个基础上,再叠加自己的功能——官方有的,我们都有;官方没有的,我们补上。
让 Obsidian 有 Word 中表格的体验
原生 Markdown 表格的本质是“在文档里排版一张表”,不是“在文档里做一份数据”。所以我们不做筛选、不做排序、不做数据透视——那些是 Excel 的领地。我们做的是 Word 表格里最常用的那部分:合并单元格、格内换行、斜分表头、样式统一。让表格融入文档,而不是让文档变成一个数据处理工具。
繁复有繁复的妙处
我们没有选择“在原生 Markdown 表格上做增强”这条更轻的路,而是从头自研了一套数据结构和渲染逻辑。代价是更重、更难维护;回报是它不受 Obsidian 原生语法的限制,面对官方的更新站得更稳。它更庞大,但它永远可以继续长。
核心功能
下面,我们来到大家最关心的功能问题,这个插件到底是什么?
合并单元格
最核心的功能,也是插件开发的原点:
右合、下合、拆分,支持单个单元格,也支持整个选区一次合并。合并后的表格导航是正确的:Tab、Enter 和方向键会自动跳过被合并覆盖的格子,不会出现光标"消失"在表格里的问题。
针对合并单元格,我们做了很多的支持和边缘情况的测试,确保和下面的功能不冲突,比如:如果第一行参与纵向合并单元格,单表格表头底色消失,下面就不逐一解释了,建议自行在使用中体会。

所见即所得
我们的逻辑和官方的很接近,但是由于官方的实时预览 API 不对外开放,所以我们自己模仿官方的效果书写了独属于我们自己的逻辑,对光标、换行等等都有自己的逻辑:
点击单元格直接编辑,编辑态与渲染态无缝衔接——你在格子里看到的排版,就是笔记里呈现的样子。方向键在单元格间移动,Enter 在格内换行;光标停在最后一行时,表格底部会出现一个 + 条,点一下就是新行。
我们在修 bug 上下最多功夫的莫过于这个功能了,如果发现问题,欢迎反馈给我!

样式与内容渲染支持
- 底色与圆角
任意单元格可以单独设置底色(取色器任选),整张表格可以开启外角圆角——让表格贴合笔记的视觉气质,而不是一块突兀的白色矩形。 - 多种预设样式
内置三种线型预设:三线表(顶线、表头下线、底线,学术风格)、无格线(只留内容)、仅横线(去掉所有竖线,更轻盈)。设置里全局启用,也可以用命令对单张表单独指定,随表格保存。 - 隔行变色
按主题强调色或自定义颜色逐行填色,长表格读起来不再串行。单格底色始终优先于隔行色,两者可以共存。 - 表头底色
表头行可以单独铺底色(主题强调色或自定义),一眼分清表头与数据。
内容渲染支持
单元格内容失焦后按 Obsidian 的方式渲染:
- 行内 Markdown:加粗、斜体、==高亮==、
删除线、代码、链接 - 图片嵌入:
![[图片.png|300]],编辑态拖动角点即可调整尺寸 - 行内数学公式:
$E=mc^2$ - 可勾选任务列表——我们补上了官方缺乏的东西,预览模式点击复选框,源码自动同步
- Markdown 不够用时,可以直接手写 HTML

结构排版与附手工具
换行逻辑
我们的换行和官方不同,只要按下 enter 就会直接在单元格内换行。而官方的必须依靠 输入 <br> 来实现,大大降低了输入的复杂程度。
网格选中与复制和删除
按住 Ctrl(Cmd)+shift+点击/滑动或双击 ,像 Excel 一样拖出一个选区(选区可以是任意形状)。
- 其中移动端是双击,多次双击就是多格选中,点击选区就是取消选中。如果你安装了妙控键盘,那么 Ctrl(Cmd)+shift+点击也是可以用的。
粘贴分为普通迁移和直接扩张
- 普通迁移就是复制内容,快捷键为 Ctrl(Cmd)+C 和 Ctrl(Cmd)+V,但是保留结构,如果位置不够了,只会默默被“吞掉”
- 而直接扩张,是 Ctrl(Cmd)+Alt+V,位置不够会自动加。图中演示的是直接扩张。
删除分为文本删除和结构删除。
- 直接选中按 DELETE 是文本删除。删除文本,保留结构。
- 如果按住 Ctrl(Cmd)+Delete,那么是结构删除,直接删除选框的行或者列。

三种模式
同一张表,三种形态,随内容切换:
- OL 换行模式:长文本在格内自动换行,适合大量文字
- HS 横向拉长模式:保持某一段不换行(除非主动按 enter),配合横向滚动条查看左右位置,给很宽的表格更可视化的机会。
- RC 自由拖拽模式:行列尺寸完全自由,你可以拖动任何行或者列的宽和高,还能整体拉伸,解决长宽钉死问题。
六种对齐
水平方向左 / 中 / 右,垂直方向上 / 中 / 下,两两组合——表头居中、数字靠右、长文顶端对齐,都是一次点击的事。
拖动行列
拖动符抓起整行或整列,拖到目标位置松手即完成排序;不滑动直接点按,就是选中整行/整列。
拖动符号可以点击,表示选中整行或整列,按住 shift 可以同时选中多行多列

斜分表头
一条命令在格内画出左上到右下的对角线,把单元格分成右上、左下两个输入区——经典的斜分表头,Enter 或方向键在两区之间跳转。做课程表、排班表的时候,它就是那个缺了会觉得少点什么的格子。

Excel 风格公式
以 =函数(范围) 开头的单元格直接显示计算结果(SUM、AVERAGE、COUNT、MIN、MAX),范围按 A1、B2 这样的行列地址书写;重新聚焦时显示原公式,随时改随时算。
浮窗
光标所在的格子旁会浮出一排常用操作:加粗、斜体、字号、合并、增删行列、转换高频操作不需要去菜单里翻。桌面端与移动端可以分别开关。
加粗和斜体以 html 标签储存,不是 markdown 哦,这是为了便于和放大叠加
自动填充
选中单元格后拖动右下角的小三角,沿行或列填充:纯文本直接复制,纯数字递增递减,"条目1、条目2"这类文本+数字混合也会递推;星期、月份按周期循环,日期按真实日历推进(闰年不会出错)……
末端的小弹窗可以随时切换递增/递减方向。

设置与自定义
界面提供中英双语;桌面端与移动端的浮动工具栏分别开关;右键菜单完全可自定义——文本模式逐行写菜单项,内置查找助手帮你挑选动作和图标,保存后对所有表格生效。填充柄、行列拖动符、图片缩放拖柄这些交互组件,也都有独立开关。
存储格式
表格格式
整张表格以 JSON 存储在 ```vtable 代码块里。它是纯文本:可以随意迁移、可以 diff、可以版本管理,笔记不会被"锁"在某个数据库里。
大部分情况下,你无需直接接触源码,在编辑态操作,所有修改自动写入源码。
复制格式
导出为 Markdown 表格时,通过嵌套 HTML 保留对齐与底色;也可以导出为 HTML 表格或纯文本——各取所需。
快捷键
我们的所有命令都可以设置快捷键,但这里要介绍的是我们自动配置好的一些快捷键
| 效果 | 快捷键 |
|---|---|
| 框选单元格区域 | Ctrl(Cmd)+Shift + 按住拖动 |
| 选中(或追加选中)单个单元格 | Ctrl(Cmd)+Shift + 点击 |
| 选中整行 / 整列 | 单击行号 / 列标(RC 模式) |
| 把整行 / 整列加入选框(多选) | Shift + 单击行号 / 列标 |
| 清除选框 | 在选框外单击 |
| 清除选框(移动端) | 在选框内单击 |
| 格内文字全选并转为选框 | Ctrl(Cmd)+A |
| 复制选框为 Markdown 表格 | Ctrl(Cmd)+C |
| 粘贴 Markdown 表格(以焦点格为左上角覆盖) | Ctrl(Cmd)+V |
| 粘贴 Markdown 表格并按需扩行 / 扩列 | Ctrl(Cmd)+Alt+V |
| 清空选区内单元格内容 | Backspace / Delete |
| 删除选框对应的整行 / 整列(非整行列仅提示) | Ctrl(Cmd)+Delete(Mac 键盘 Cmd+Backspace 同效) |
| 删除光标所在行(macOS / iPad 妙控键盘) | Cmd+Backspace |
| 格内加粗选中文字 | Ctrl(Cmd)+Alt+B |
| 撤销上一次格内编辑 | Ctrl(Cmd)+Alt+Z |
| 下一格 / 上一格 | Tab / Shift+Tab |
| 单元格间移动(对称落点) | ↑ ↓ ← → |
图表与导出
在表头声明一个关键词(vbarchart / vline / vpie),表格就能一键变成跟随深浅色主题的柱状图、折线图或饼图。
更进一步,任意数量的柱状图和折线图可以纵向自由拼在一张大表里,渲染成一张融合的组合图表——共享同一个量程(自动取各段的最小下界与最大上界),折线按类目对齐叠在柱子上。
检测到图表表头时,表格右下角会出现一个小按钮,点击即转换,不需要按命令。
设置面板还能一键添加中英文图表模板,模板直接用官方的模板命令就能调用,模板有示例内容,拿来就能用。

互通与转换
已有的 Markdown 表格或 HTML 表格,一条命令转成 Vtable;反过来也能一键导出。html 支持合并单元格,完美表达 vtable 编辑的结果。
你还可以借助这个工具完成从 markdown 到 html 的转换!还可以修复破损、语法略有误的 md 表格。
AI 的融入
我们为 AI 助手准备了一份完整的语法文档(vtable-syntax):JSON 结构、合并、换行、公式、样式、图表,全部附可复制的示例。把它交给 Claude Code、ChatGPT 等任何支持自定义指令(SKILL)的 AI,它就能替你写表、改表、生成图表——你说需求,它出源码。
那些做表格插件的同行者
先交代一下立场:以下只是我个人有限的使用体验,插件更新很快,具体请以你当前安装的版本为准。我更想借这一节说清楚 Vtable 站在什么位置,而不是给同类插件排座次。
截止写这篇文章,Obsidian 社区里上架的表格类插件已经有 237 个。这个数字本身很说明问题:表格是 Obsidian 里被需要、也被反复尝试的一块。不同的人对“表格”的期待并不相同——有人想要一个嵌在文档里的 Excel,有人只想让原生 Markdown 表格更好编辑,有人需要数据库式的管理。这些需求都真实存在,也都有相应的插件认真回应。Vtable 没有能力、也没有打算取代它们;我们只是选了一个自己最在意的方向,并把它做深。
这个方向可以概括为一句话:我们想做的不是“Excel”,而是“Obsidian 里的 Word 表格”。 表格首先应当是文档的一部分,看起来、用起来都像 Obsidian 自己长出来的;同时,原生 Markdown 表格缺的那几样能力——尤其是合并单元格——应该被补上。
市面上的做法大致有几类,这是我筛选出的一部分至少能实现合并单元格的插件,各有各的取舍:
Rich table 一类把电子表格的能力搬进文档,功能密度高,适合重度 Excel 用户;代价是界面元素也更多。Vtable 的取舍相反,我们希望界面尽量轻,嵌入感更强。
Sheets basic 一类在官方 Markdown 表格之上做增强,轻巧直接。由于仍建立在原生语法之上,合并、表头等能力会受到一定限制,也需要跟随 Obsidian 版本持续适配,如今我这边不再可用了。Vtable 换了一条路:把表格数据放进独立的代码块,从存储层就为合并和富内容留出空间。
Sheet plus 一类走的是“Excel 平替”路线,功能全面、体验接近。路线不同,不必比较高下;也正因为路线不同,Vtable 不需要额外管理附件,嵌入文档时更轻。
Advanced Tables 则是一位老前辈,它让很多人第一次觉得原生表格也可以很好用;后来官方表格的编辑体验逐步改善,这本身也说明了这类探索的价值。Vtable 在基础操作上同样尽量向原生看齐。
所以,与其说 Vtable 在“改进”谁,不如说它在补一个我们自己最在意的位置:在 Markdown 笔记里,做一张漂亮、能合并、装得下富内容,同时始终是纯文本的表格。 如果你已经有顺手的方案,继续用就好,甚至可以把它们和 Vtable 搭配使用;如果你正好在意这件事,欢迎试试 Vtable。
插件开发的过去、现在和未来
很多插件诞生于一个完美的点子,Vtable 却诞生于对现状的突围。
最初,只是原生表格的局限让我感到无力。而早期开发更是一片泥沼:虚假的 API、崩塌的算力、竞争中的茫然、越修越坏的代码。那些反复推倒重来的“废品”,最终促使我转向另一种模式。没有那些试错的代价,就不会有后来“宁可从零自研,也绝不妥协”的决心。
Vtable 的开发难度远比你想象的复杂。 Vflacard 花费了一个上午,毫不夸张地说,Vtable 开发用着能力更强的模型,却付出了超过 Vflacard 百倍的时间。在这样的风雨下,我看到了社区的默默支持,一点点赞,一个建议,一点评论,一颗 Star,全都让 Vtable 2.0 成为可能。
历经数次剥离与重构,Vtable 2.0 已经站在了这里,成功上架了插件市场。
它拥有从头自研的数据结构,具备完全独立的所见即所得渲染逻辑,却完美融入了 Obsidian 生态。它实现了最初的设想:像 Word 一样优雅排版,像原生一样顺滑编辑。如今,它已在社区中悄无声息地迎来了千位真实用户。
上千次自然下载,证明了这条路是对的:不需要牺牲 Markdown 的纯净,也不需要忍受割裂的体验,你依然能获得极其现代的表格编辑方式。
我为什么要说这些?并非为了诉说困难。没有人委托我做这个项目,我只是希望大家能正确地看待这样一个插件。请尊重这里的每一次换行、每一个空格——因为它们都是反复推敲与修复的结果。你可以提出不足,但请不要用随意和轻视,去否定那些为了极致体验而走过的泥泞。
插件已经在这里了,但是插件不能没有未来,虽然未来进度会减缓,但我们会持续做好这件事。你们的鼓励、安装都是我继续下去的一切动力之源。欢迎提出修改建议和 bug 反馈,它总会被看到,只有这样,插件才有未来。
安装
通过官方社区插件库 (推荐方式)
在 Obsidian 中打开 设置 → 社区插件 → 浏览,搜索 Vtable 并安装。插件将通过 Obsidian 自动更新。
通过 BRAT 安装
- 安装 “BRAT” 社区插件
- 在 BRAT 设置中,选择 添加测试版插件
- 输入
https://github.com/Ming145/Vtable - 在社区插件里启用 Vtable
手动安装
从最新发行版下载 main.js、styles.css 和 manifest.json
在你的库中新建文件夹 .obsidian/plugins/vtable/
将这三个文件复制进去
重启 Obsidian,在社区插件中启用 Vtable
支持与捐赠
说实话,如果你完整的读到了这里,那么我已经感谢不尽了, 这已经是对我的很大支持了。但是,真正什么样还得上手体验,不要求长久留着,只愿意读到这里的人都能够试一试。
当然,我们也开放了捐赠通道,不过比较可惜的是,由于特殊原因,只支持微信支付。
在此,我也要集体感激在 Vtable 开发初期就一直支持着我的用户们,是你们让 Vtable 走到了今天。
关于名称
Vtable 是一个插件名,为 V(系列名)+table(表格)构成,非常好理解对吧?
我们的插件和字节跳动的 VTable 无关,我们是完全独立的一个插件。