alt + c 仅在光标位于标准格式的顶级任务行(如“- [ ]”)时生效,不支持嵌套、缩进或非标准符号;需关闭 autoupdateonsave 避免导出乱码,协作时统一配置并依赖纯文本协议。

Alt + C 切换任务列表项状态,但光标必须在 - [ ] 或 - [x] 行内
很多人按 Alt + C 没反应,根本原因是光标没落在任务列表项的行上——它不支持跨行批量操作,也不识别缩进后的嵌套项(比如二级列表里的 - [ ])。插件只检测当前行是否匹配正则 ^- \[([ x])\],且要求空格和括号之间无多余字符。
实操建议:
- 确保光标停在任务项最左侧或任意位置,但整行必须是标准格式,例如
- [ ] 待办事项,不能是- [ ] 待办(开头有空格)或-[] 待办(缺空格) - 如果列表是从别处粘贴过来的,先用
Alt + Shift + F格式化整个文档,再逐行触发Alt + C - 多人协作时,建议统一用
- [ ]而非* [ ]或+ [ ],后者部分版本不识别
任务列表导出为共享看板前,先关掉 autoUpdateOnSave 配置
默认开启的 markdown.extension.taskList.autoUpdateOnSave 会在保存时自动把 - [x] 同步为 GitHub 风格完成态(带删除线),但这个行为会污染原始 Markdown:一旦有人用其他编辑器打开,~~- [x]~~ 就变成乱码,Git diff 也难以阅读。
实操建议:
- 在工作区设置里显式关闭该选项:
"markdown.extension.taskList.autoUpdateOnSave": false - 导出看板时,用命令面板运行
Markdown: Export Task List as HTML(需插件 v3.14+),它会生成干净的表格结构,不含任何渲染副作用 - 若团队用 Notion 或飞书同步,直接复制纯文本任务项更稳妥——
Alt + C只改标记,不改文字内容,天然兼容
嵌套任务列表无法用 Alt + C 切换?试试手动补全缩进层级
Markdown All in One 对嵌套任务列表的支持有限:Alt + C 在二级及以上列表中失效,不是 bug,而是设计如此。插件只处理“顶级列表项”,即以行首 - [ ] 开头、且前面无空白符的行。
实操建议:
- 需要多级任务管理时,改用标题 + 子任务组合:用
## 迭代计划作为分组,每个子项用独立的一级任务列表 - 如果非得嵌套,可临时把光标移到父项行,按
Tab缩进后手动输入- [ ] 子任务,再用鼠标点击方框切换(VS Code 原生支持点击渲染后的复选框) - 注意:缩进用空格而非 Tab 键,否则某些导出工具(如 Pandoc)会误判为代码块
团队协作中任务状态不同步?检查 .vscode/settings.json 的 workspace 层级配置
任务列表状态本身不存于文件,Alt + C 只修改 Markdown 源码中的 [ ] 和 [x]。但团队成员如果各自启用了不同插件版本或本地设置了 taskList.autoRename,就可能出现一人保存后另一人看到的是 - [x] 已完成,而对方编辑器显示为 - [x] done(自动重命名功能触发)。
实操建议:
- 在项目根目录的
.vscode/settings.json中统一锁定关键配置:"markdown.extension.taskList.autoRename": false - 禁止提交
package-lock.json类似文件到 Markdown 目录,避免插件缓存干扰 - CI 流程中增加校验脚本,用
grep -c "\[x\]" *.md统计完成率,比依赖 UI 更可靠
任务列表的协作本质是文本协议,不是状态同步服务。所有“自动”功能都可能在跨环境时失效,最稳的方式永远是:人写清楚,机器只做最小改动。











