Skip to content

个人博客自建指南(4.1 番外):VSCode 里的 Markdown 生产力配置

前言

第4篇我们用 VitePress 搭好了博客框架,写了第一篇 Markdown 文章。但那时候用的还是最原始的编辑方式:手打 # 标题、手写 1. 2. 3. 序号、手动对齐表格。

写了十几篇文章之后,这些重复劳动开始变得烦人了。尤其是写步骤型文章(比如树莓派烧录、Nginx 配置)时,序号改来改去、表格对不齐、目录要手写——这些琐事加起来,每次能多耗十分钟。

这篇就来解决这个问题。做完之后,你的 VSCode 将成为一台“Markdown 写作机器”,你只需要关心内容,格式和结构交给插件。

一、方案选择

方案优点缺点推荐度
原生 VSCode,不装插件零配置无自动补全、无目录、无表格对齐
只装一个 Markdown All in One覆盖 90% 高频需求部分键位需手动修复推荐
全套 Markdown 插件全家桶功能最全配置复杂,部分功能重叠⚠️ 可选

Markdown All in One 一个插件就能覆盖你写博客时 90% 的重复劳动,而且配置简单,不会拖慢 VSCode 启动速度。唯一的代价是:有几个快捷键和 VSCode 原生功能冲突,需要手动修复。这篇会一并解决。

二、安装

在 VSCode 扩展商店搜索 Markdown All in One,作者 Yu Zhang,安装即可。

Markdown 预览

vscode 中打开 .md 文件, 快捷键: ctrl+k → v , 即可打开预览窗口,查看排版效果。

三、功能拆解

3.1 目录生成(长文必备)

以前写一篇带小标题的长文,要在开头手写目录,改了标题还得同步改目录。现在光标放在文章开头,打开命令面板:

Ctrl+Shift+P → Create Table of Contents

插件会自动扫描全文的 # ## ### 标题,生成带锚点链接的目录。之后修改了标题,执行 Update Table of Contents 即可刷新。

如果你写的是系列教程(比如“个人博客自建指南”这种多级标题的文章),还可以给标题自动编号:

Ctrl+Shift+P → Add section numbers

效果:

markdown
## 1. 安装

### 1.1 下载

### 1.2 配置

## 2. 使用

3.2 有序列表自动续号(步骤型文章神器)

写步骤时最烦的就是改了中间一项,后面的序号全要手动改。装了这个插件后,你只需要:

  1. 行首输入 1. ,回车后自动变成 2.
  2. 如果要在第 3 步和第 4 步之间插入一项,直接在新位置按 End行尾回车即可,编辑器会自动生成下一个序号,整段自动重排
  3. 选中多行纯文本,一键转成有序列表(快捷键见 第四节“键位处理”)

对于经常写操作步骤的博客来说,这个功能省的时间最多。

3.3 任务列表

写待办事项时,Alt+C 可以快速勾选或取消勾选:

markdown
- [x] 写完这篇番外
- [ ] 部署到线上
- [ ] 提交 sitemap

3.4 导出 HTML

如果你想把文章发给不看 Markdown 的人,可以:

Ctrl+Shift+P → Print current document to HTML

生成一个带样式的 HTML 文件,可以直接用浏览器打开。

四、键位处理

安装完插件后,你会发现有几个快捷键按了没反应,或者触发了 VSCode 的其他功能。这是因为 Markdown All in One 想占用的几个键位,已经被 VSCode 原生占用了。

4.1 冲突清单

快捷键插件意图实际被谁占了建议替代键
Ctrl+Shift+L切换列表(有序/无序/任务)VSCode 原生:选中所有匹配项Ctrl+Shift+1
Ctrl+`行内代码VSCode 原生:切换终端面板Ctrl+Shift+`
Ctrl+Shift+]升标题级VSCode 原生:展开代码折叠Ctrl+Shift+=
Ctrl+Shift+[降标题级VSCode 原生:折叠代码Ctrl+Shift+-

4.2 一键修复

打开快捷键 JSON 文件:

Ctrl+K Ctrl+S → 右上角 {} 图标

把以下内容粘贴进去,保存即可:

json
[
  // Markdown All in One 键位修复
  {
    "key": "ctrl+shift+1",
    "command": "markdown.extension.editing.toggleList",
    "when": "editorTextFocus && editorLangId == 'markdown'"
  },
  {
    "key": "ctrl+shift+`",
    "command": "markdown.extension.editing.toggleCodeSpan",
    "when": "editorTextFocus && editorLangId == 'markdown'"
  },
  {
    "key": "ctrl+shift+B",
    "command": "markdown.extension.editing.toggleCodeBlock",
    "when": "editorTextFocus && editorLangId == 'markdown'"
  },
  {
    "key": "ctrl+shift+=",
    "command": "markdown.extension.editing.toggleHeadingUp",
    "when": "editorTextFocus && editorLangId == 'markdown'"
  },
  {
    "key": "ctrl+shift+-",
    "command": "markdown.extension.editing.toggleHeadingDown",
    "when": "editorTextFocus && editorLangId == 'markdown'"
  }
]

4.3 快捷键总览(以改建后为准)

修复完成后,以下是 Markdown 写作中所有常用快捷键,以最终生效的按键为准。与原版有冲突的,已标注改前/改后。

操作快捷键说明
粗体Ctrl+B无冲突,原版可用
斜体Ctrl+I无冲突,原版可用
删除线Alt+S无冲突,原版可用
行内代码Ctrl+Shift+`⚠️ 原版 Ctrl+` 被终端占用,已改为 `Ctrl+Shift+`
代码块Ctrl+Shift+B⚠️ 原版 无键位,已改为 Ctrl+Shift+B
升标题级Ctrl+Shift+=⚠️ 原版 Ctrl+Shift+] 被折叠占用,已改为 Ctrl+Shift+=
降标题级Ctrl+Shift+-⚠️ 原版 Ctrl+Shift+[ 被折叠占用,已改为 Ctrl+Shift+-
切换列表Ctrl+Shift+1⚠️ 原版 Ctrl+Shift+L 被选中匹配占用,已改为 Ctrl+Shift+1。选中纯文本后按一次转无序列表,再按一次转有序列表,循环切换
勾选/取消任务Alt+C无冲突,原版可用

4.4 记忆口诀

加粗斜体不变样(Ctrl+B / Ctrl+I)
行内代码加 Shift(Ctrl+Shift+`)
升降标题等号和减号(Ctrl+Shift+= / Ctrl+Shift+-)
列表切换用数字 1(Ctrl+Shift+1)

4.5 引用块

Markdown All in One 没有提供独立的快捷键或命令

最实用的操作方式是:

  1. 鼠标点击第一行行首
  2. 连续按 Alt+Ctrl+↓ 逐行向下添加光标,到达最后一行后松开
  3. 直接输入 >
  4. 所有行首同时插入引用标记,几秒钟完成。

4.6 完整配置

安装插件后,大部分功能开箱即用。但我推荐微调几个设置,让它更贴合你的写作习惯。

打开 VSCode 设置(Ctrl+,),弹窗的右上角找到打开设置(json)的图标,点击进入编辑 settings.json

json
{
  // Markdown All in One 配置
  "markdown.extension.list.indentationSize": "adaptive",
  "markdown.extension.list.toggle.candidate-markers": ["1.", "-", "*", "+", "1)"],
  "markdown.extension.orderedList.autoRenumber": true,
  "markdown.extension.orderedList.marker": "ordered",
  "markdown.extension.toc.levels": "2..6",
  "markdown.extension.toc.unorderedList.marker": "-",
  "markdown.extension.tableFormatter.enabled": true,
  "markdown.extension.print.includeVscodeStylesheets": false,
  "markdown.extension.print.theme": "light",
  "markdown.extension.print.imgToBase64": false
}

各配置项说明:

配置项作用
orderedList.autoRenumbertrue修改列表项时自动重排序号
orderedList.markerordered有序列表显示为 1. 2. 3.,自动编排序号
list.toggle.candidate-markers["1.", "-", "*", "+"]调整 Toggle List 循环顺序,将 1. 放在首位,纯文本按一次快捷键直接转为有序列表
toc.levels"2..6"目录只包含 ######## 标题,跳过 #(通常是文章标题)
tableFormatter.enabledtrue启用表格自动对齐

五、日常使用流程

装好插件、配好设置、修好键位后,你的写作流程变成这样:

5.1 写一篇长文(如“自建指南”系列)

  1. 写标题,光标放标题行,Ctrl + Shift + - / Ctrl + Shift + = 升降标题层级
  2. 写正文,随手用 Ctrl + B 加粗关键词,Ctrl + I 标术语, Ctrl + Shift + ` 标短命令或专业名词
  3. 选中多行, Ctrl + Shift + 1 给文段切换列表编号
  4. 选中多行, Ctrl + Shift + B 给文段转换为代码段
  5. 部署前,检查任务列表的完成状态

5.2 写一篇短笔记(如软件清单)

  1. 先写纯文本,选中后 Ctrl + Shift + 1 转 有序/无序 列表
  2. 先写纯文本,选中后 Ctrl + Shift + B 转 代码段

5.3 验证

打开任意一篇已有的博客文章,尝试:

  1. 选中几行纯文本,按 Ctrl+Shift+1,看是否转成有序列表
  2. 选中文本,按 Ctrl+B,看是否有加粗
  3. 选中几行纯文本,按 Ctrl+Shift+B,看否转成代码块
  4. 执行 Ctrl+Shift+PCreate Table of Contents,看目录是否生成

如果都正常,说明配置生效。

总结

这篇我们做了:

步骤说明
安装 Markdown All in One覆盖 90% 的 Markdown 编辑痛点
修复键位冲突把被 VSCode 占用的快捷键映射到 Ctrl+Shift+数字/符号 的安全区
配置 settings.json自动续号、目录级别、表格对齐
掌握快捷键Ctrl+B/I、Ctrl+Shift+1、Ctrl+Shift+B等

从此你在 VSCode 里写 Markdown,不再需要手动数空格、手动改序号、手动写目录。你只需要关心内容,剩下的交给插件。