vscode默认不支持点击切换复选框状态,必须安装markdown checkbox插件才能实现交互式勾选;仅语法- [x]或- [ ]可静态渲染,但点击无响应、不修改源文件、不自动保存,且仅识别小写x或空格,缩进后失效。

VSCode 默认不支持点击切换复选框状态,必须装插件才能实现交互式勾选。仅靠语法 - [x] 或 - [ ] 只能静态渲染,点不动、改不了、不自动保存。
复选框语法写对了但点不了?这是正常行为
VSCode 自带的 Markdown 预览器(markdown.preview.enabled)只做一次性 HTML 渲染,不注入 JS 逻辑。所以:
- - [x] 和 - [ ] 能正确显示勾/未勾样式
- 但点击无响应,也不会修改源文件内容
- [X]、[✓]、[1] 等变体不被识别,只认小写 x 或空格
- 复选框必须顶格写在列表行开头,缩进后会降级为普通文本
必须装 Markdown Checkbox 插件才可点击切换
目前最稳定的选择是 Markdown Checkbox(作者:shd101wyy),它会在预览中注入轻量 JS,实现:
- 点击 [ ] → 自动改为 [x] 并保存文件
- 点击 [x] → 自动改为 [ ] 并保存文件
- 不影响其他 Markdown 元素(表格、代码块、数学公式等)
- 安装后无需配置,打开任意 .md 文件,侧边预览即可用
- 注意:若文件被 Git 或其他进程占用,保存可能延迟 1–2 秒,别连点
快捷键失效怎么办(如 macOS 的 Option+C)
从 vscode-markdown 扩展 3.6.0 版起,markdown.extension.checkTaskList 的默认快捷键已被移除:
- 原因是 Option+C 在部分输入法下会触发特殊字符,影响多语言用户
- 你可以在 VSCode 快捷键设置里手动绑定:
搜索命令 markdown.extension.checkTaskList
点击“+”添加新快捷键(比如设为 Ctrl+Shift+C)
避免使用 Option 或 Alt 组合键,优先选 Ctrl 系列
- 同理,markdown.extension.editing.toggleStrikethrough 等也被移除了默认键位
真正容易被忽略的是:复选框本质就是纯文本行,每次勾选=一次文件修改=一次 Git diff。如果你把它当“界面控件”用,却没意识到它会真实提交到仓库,协作时容易引发意外变更。











