開発

Markdown All in Oneの使い方:目次・表整形の設定とVS Code標準との差分

Markdown All in Oneの使い方:目次・表整形の設定とVS Code標準との差分

Markdown All in Oneは、VS CodeでMarkdownを書くときのショートカット、目次(TOC)の自動生成、リストの継続入力、表の整形、HTML出力をまとめて足す拡張機能です。この記事では、code CLIでの導入と版の確かめ方から、VS Code標準のプレビューと重なる機能の切り分け、目次と表整形の設定、既定キーの衝突の外し方までを設定例付きで扱います。後半では、チームで設定を揃える.vscode/extensions.jsonと、拡張に頼らずCIで書式を検査する構成を示し、入れない方がよい場面も条件付きで言い切ります。

まとめ:Markdown All in Oneで残す機能と標準に任せる機能

2026年10月時点で、Markdown All in Oneの価値は「目次の生成と保存時更新」「GFMの表整形」「リストのEnter・Tab継続」の3つにほぼ絞られます。数式とMermaidの描画、パス補完、リンク検証はVS Code標準が受け持つようになったため、拡張側の同等機能は既定で控えめにしておくのが扱いやすい構成です。

版の確認も先に済ませてください。Visual Studio Marketplaceの最新は3.6.3(2025年3月9日公開)で、Open VSX側は3.6.2のままです。VSCodiumなどOpen VSXから拡張を入れるエディタでは、Copilot NESとのTabキー衝突の修正が入っていません。

チームでは拡張を推奨拡張として配り、書式の判定はCIのmarkdownlint-cli2に任せて、拡張が無いメンバーが混ざっても崩れない構成にします。

Markdown All in Oneをインストールしてcode CLIで版を確かめる手順

拡張機能ビューとcode –install-extensionの2通りの導入手順

画面から入れる場合は、拡張機能ビュー(Ctrl+Shift+X)で「Markdown All in One」を検索し、発行者がYu Zhang(拡張ID yzhang.markdown-all-in-one)のものを選びます。同名や類似名の拡張がいくつかあるため、IDで見分けるのが確実です。

複数台や新メンバーの環境に入れるなら、コマンドラインの方が手順書に残せます。VS Codeのコマンドラインドキュメントには、--install-extensionに@{version}を付けると特定の版を入れられると書かれています。

# 最新版を入れる
code --install-extension yzhang.markdown-all-in-one

# 版を固定して入れる(検証済みの版にそろえたいとき)
code --install-extension [email protected]

# 入っている版を確かめる(bash / zsh)
code --list-extensions --show-versions | grep markdown-all-in-one

# 入っている版を確かめる(PowerShell)
code --list-extensions --show-versions | Select-String markdown-all-in-one

出力が[email protected]なら最新です。macOSでcodeが見つからないときは、コマンドパレットの「Shell Command: Install ‘code’ command in PATH」を実行します。CLIの基本はCLIとは?コマンドライン操作の仕組みとGUIとの使い分けで整理しています。

Marketplaceは3.6.3・Open VSXは3.6.2で止まる版差の確認

2026年10月2日に両レジストリのAPIを実測したところ、Visual Studio Marketplaceは3.6.3、Open VSXは3.6.2(2024年1月16日)でした。要求するVS Codeの版はどちらも1.77以上です。

レジストリ 最新版 公開日 主な利用元
Visual Studio Marketplace 3.6.3 2025年3月9日 VS Code本体
Open VSX 3.6.2 2024年1月16日 VSCodium・Eclipse Theiaなど

差分の中身はCHANGELOGの3.6.3節にあり、GitHub Copilotの次の編集候補(NES)とのキー衝突の修正、Zola向けslug、Eclipse Theiaの正式対応が入っています。Open VSX系のエディタでCopilotやその種の補完を併用していて、リスト内でTabが効かないと感じたら、この版差を最初に疑ってください。

最終リリース2025年3月・1,464万インストールの保守状況

Marketplaceのインストール数は14,644,867件で、評価は172件の平均4.69です。一方で、リリースは3.6.3から1年半以上出ておらず、GitHubリポジトリの未解決IssueとPRは計463件あります。最終pushは2026年6月13日で、アーカイブはされていません。

機能は枯れていて日常の編集には十分です。ただ、他拡張との衝突の修正は速く出ない前提で使い、拡張が無くても文書が崩れない構成を先に作っておきます。

VS Code標準プレビューと重なる機能を外して残す4つの編集機能

標準で動くMermaid・KaTeX・リンク検証と拡張側の重複

VS CodeのMarkdownドキュメント(2026年9月30日更新)には、標準プレビューがmermaidのコードブロックを図として描画し、数式をKaTeXで描画すると明記されています。リンク切れの検出もmarkdown.validate.enabledで標準のまま行えます。一方、目次の自動生成は標準機能の一覧にありません。

拡張側の数式機能も有効なままだと、同じ$...$を2系統で扱います。表示が食い違うときはmarkdown.extension.math.enabledをfalseにして標準に寄せる設定にしてください。Mermaidが表示されないときの切り分けはVSCodeでシーケンス図・フローチャート自動生成|Mermaidが表示されない対処にまとめています。

拡張に残す価値があるのは、目次の生成と更新、GFMの表整形、リストの継続入力、HTMLへの一括出力の4つで、優先度もこの順です。

completion.enabledが既定falseになったパス補完の扱い

3.6.0でmarkdown.extension.completion.enabledが追加され、拡張側のパス補完は既定で無効になりました。VS Code標準が/や./の入力でファイルパスを、##の入力でワークスペース内の見出しを補完するようになったためです。

拡張側の補完を戻す理由は、KaTeXの関数名補完と、completion.rootで起点フォルダを変えたい場合くらいです。画像の置き場所は標準のmarkdown.copyFiles.destinationで決められます。

Ctrl+B・Alt+C・Ctrl+Mなど既定キーと衝突する操作

拡張の既定キーはMarkdownの編集中、本体の割り当てを上書きします。Ctrl+B(太字)はサイドバーの表示切り替え、Ctrl+M(数式環境)はTabキーでフォーカスを移すモードの切り替え、Ctrl+Shift+[とCtrl+Shift+](見出しレベル)はコードの折りたたみと重なります。

macOSではAlt+C(タスクリストのチェック)とAlt+S(取り消し線)が既定から外れています。Issue #1285で、ポルトガル語の「ç」をOption+Cで入力できなくなると報告されたためです。使わない割り当ては、キーボードショートカットのドキュメントにある「コマンドIDの先頭に-を付けると削除」の書式で外します。

// keybindings.json(コマンドパレット「Preferences: Open Keyboard Shortcuts (JSON)」)
[
  { "key": "ctrl+m", "command": "-markdown.extension.editing.toggleMath" },
  { "key": "ctrl+b", "command": "-markdown.extension.editing.toggleBold" },
  { "key": "ctrl+alt+b", "command": "markdown.extension.editing.toggleBold",
    "when": "editorTextFocus && editorLangId == markdown" }
]

3件目のように別のキーへ移すこともできます。数式を書かないならCtrl+Mは外しておくと安全です。

目次(TOC)を作成し保存時に自動更新させる設定とslugの選び方

Create Table of Contentsコマンドと見出しレベル1..6の絞り込み

目次を入れたい位置にカーソルを置き、コマンドパレットで「Markdown All in One: Create Table of Contents」を実行すると、見出しへのリンク付きの箇条書きが挿入されます。以後はmarkdown.extension.toc.updateOnSave(既定true)により、保存のたびに目次が書き換わります。

// .vscode/settings.json
{
  "markdown.extension.toc.levels": "2..3",
  "markdown.extension.toc.updateOnSave": true,
  "markdown.extension.toc.slugifyMode": "github",
  "markdown.extension.toc.unorderedList.marker": "-",
  "markdown.extension.math.enabled": false
}

既定のtoc.levelsは1..6で、h1の文書タイトルやh4以下の細目まで目次に並びます。READMEや設計書では2..3に絞ると、目次が本文より長くなる事態を避けられます。

omit from tocコメントでh1や目次見出しを除外する書き方

特定の見出しだけを目次から外すには、その見出しの行末か直前の行に<!-- omit from toc -->と書きます。「目次」という見出しそのものを目次に載せたくない場合が典型です。

## 目次 <!-- omit from toc -->

- [概要](#概要)
- [セットアップ](#セットアップ)

markdown.extension.toc.omittedFromTocにファイルパスと見出しの組を書く方法もありますが、見出しを変えると除外が外れるため、コメントで書く方が追いやすくなります。

slugifyModeをgithub・gitlab・azureDevopsから選ぶ基準

toc.slugifyModeは、見出しからアンカーIDを作る規則を決めます。選べるのはgithub(既定)、gitlab、gitea、azureDevops、bitbucket-cloud、zola、vscodeの7種です。この設定は目次のリンクだけでなく、見出しの補完とHTML出力にも効きます。

基準は「Markdownを最終的にどこで表示するか」の1点です。GitHubのREADMEならgithub、社内のGitLabやAzure DevOpsのWikiならその名前を選びます。ずれると、日本語や記号を含む見出しへのリンクだけが飛ばなくなります。MkDocsへ流す場合はツール側の規則に合わせます(MkDocsの使い方|インストールからMaterialテーマ・日本語対応・GitHub Pages公開まで参照)。

Add section numbersで見出し番号を振るときの注意点

「Markdown All in One: Add/Update section numbers」は、見出しの先頭に「1.」「1.1.」のような番号を書き込みます。番号は表示上の飾りではなく見出しの文字列そのものに入るため、アンカーIDも変わります。

目次は保存時に追随しますが、別ファイルから設計書.md#概要のように張ったリンクは追随しません。後から番号を入れるなら、標準のmarkdown.validate.enabledを有効にし、警告が出たリンクを直してからコミットしてください。

GFMの表をShift+Alt+Fで整形するときの日本語幅と範囲指定

全角CJK文字と絵文字を幅2で数える整形ロジックと等幅フォントの前提

表の整形は独立したキーではなく、ドキュメントのフォーマット(WindowsはShift+Alt+F)として動きます。設定はmarkdown.extension.tableFormatter.enabled(既定true)です。Prettierなど別のフォーマッタを入れている場合は、Markdownの既定フォーマッタをどちらにするかを"[markdown]": { "editor.defaultFormatter": ... }で決めておきます。

日本語の表で列がそろうかは、整形ロジック次第です。src/tableFormatter.tsでは、絵文字とCJKの範囲(U+3000〜U+9FFF、U+AC00〜U+D7AF、U+FF01〜U+FF60)の文字を幅2として数えてから空白を詰めます。全角カナと漢字は幅2、半角カナは幅1と数えられる計算です。

この計算が見た目と一致するのは、エディタのフォントで全角1文字がちょうど半角2文字分の幅になる場合だけです。既定のフォントで列がずれて見えるときは、整形の不具合ではなく、editor.fontFamilyに日本語の等幅フォントを指定していないことが原因であることが大半です。

範囲選択フォーマットとdelimiterRowNoPaddingの使いどころ

3.6.0から、表の範囲を選択して「選択範囲のフォーマット」を実行すると、その表だけを整形できます。文書全体を整形すると、他の人が書いた表まで空白が変わって差分が膨らむため、レビューのある文書では範囲指定の方が扱いやすいはずです。

tableFormatter.delimiterRowNoPaddingをtrueにすると、区切り行(|---|---|)に空白を入れません。既存文書の流儀に合わせるための設定で、新規の文書なら既定のままで足ります。

リスト継続・HTML一括出力・GFMアラートを社内文書で使う手順

Enter・Tab・Backspaceで箇条書きを継続しインデントする操作

箇条書きの行でEnterを押すと次の行頭にマーカーが入り、Tabで1段下げ、Backspaceでマーカーを消して段を戻します。番号付きリストはorderedList.autoRenumber(既定true)で、行の追加や削除のたびに番号が振り直される仕組みです。常に「1.」で書く流儀ならorderedList.markerをoneにします。

チェックリストの行でもEnterで次の未チェック項目が出ます。段下げ幅はlist.indentationSizeがadaptive(既定)ならマーカーの長さに、inheritならエディタのタブ幅に従います。

Print documents to HTMLでフォルダを一括出力する設定

「Markdown All in One: Print current document to HTML」は開いている1ファイルを、「Print documents to HTML (select a source folder)」はフォルダ内のMarkdownをまとめてHTMLにします。出力時は.mdへのリンクが.htmlに書き換わるので、フォルダごと共有フォルダに置けば文書間のリンクも生きたまま読めます。

HTMLを1ファイルで渡したいときはprint.imgToBase64をtrueにして画像を埋め込み、社内ポータルなどに貼るためスタイルが不要ならprint.pureHtmlをtrueにします。HTMLのタイトルは、1行目に<!-- title: 運用手順書 -->と書くことで指定が可能です。PDF出力に強いプレビュー系拡張との比較はMarkdown Live Editorの選び方|VS Code拡張と無料ツールを比較に譲ります。

3.6.0からは、> [!WARNING]などのGFMアラートもプレビューとHTML出力で色付きの注意書きとして描画され、手順書の警告をGitHub上と同じ見た目で出せます。

チームでMarkdown All in Oneを揃えるsettings.jsonとCI検査

.vscode/extensions.jsonで推奨拡張として配る書き方

VS Codeの拡張機能マーケットプレイスのドキュメントによれば、ワークスペースの.vscode/extensions.jsonにrecommendationsを書くと、リポジトリを開いたメンバーに導入が勧められます。目次や表の設定は.vscode/settings.jsonに置き、両方をリポジトリにコミットします。

// .vscode/extensions.json
{
  "recommendations": [
    "yzhang.markdown-all-in-one",
    "DavidAnson.vscode-markdownlint"
  ]
}

推奨は強制ではなく、拡張を入れない人や別のエディタを使う人は必ず出てきます。READMEや設計書をリポジトリで管理する前提はリポジトリとは?Gitでソースコードを管理する仕組みとローカル・リモートの使い分けで整理しています。

拡張に依存しない検査としてmarkdownlint-cli2をCIに置く構成

書き手の環境に頼らず書式をそろえるには、markdownlint-cli2をCIで回します。GitHub Actionsならmarkdownlint-cli2-actionが用意されており、2026年10月時点の最新はv24.2.0で、READMEはメジャー版@v24での指定を勧めています。

# .github/workflows/markdownlint.yml
name: markdownlint
on:
  pull_request:
    paths:
      - "**/*.md"
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: DavidAnson/markdownlint-cli2-action@v24
        with:
          globs: |
            README.md
            docs/**/*.md

ローカルで同じ検査をするならnpx markdownlint-cli2 "docs/**/*.md"で動きます。注意点は、Markdown All in Oneの目次の箇条書きマーカーや段下げ幅と、markdownlintのリストのルールを一致させることです。toc.unorderedList.markerを-にするなら、markdownlint側のリスト記号もdashにそろえます。

この構成にしておけば、拡張は「速く書くための道具」、CIは「崩れていないかの判定」という分担です。設計書やADRのような長く残る文書ほど効果があり、ADRの書き方はADR(アーキテクチャ決定記録)とは|書き方・テンプレート・design docとの違いで扱っています。ドキュメント検査を含めたCIの組み立てを外部に相談したい場合は、DevOps・CI/CD導入支援で既存のパイプラインに組み込む形から支援しています。

Markdown All in Oneを入れない方がよい場面と代替の選び方

標準機能だけで足りる書き手とMarkdown Preview Enhancedの分担

目次を使わず、表もほとんど書かない人には、この拡張は不要です。標準のプレビュー(Ctrl+Shift+V、横並びはCtrl+K V)と補完、リンク検証で日常の編集は足ります。

PDF出力やスライド化が主目的なら、プレビュー系の拡張を選びます。ただしMarkdown Preview Enhancedには2026年6月に脆弱性が公開されているため、前掲のMarkdown Live Editorの記事で対象の版を確かめてから入れてください。

Vim拡張・Copilot NESとEnterやTabが競合する環境の判断

拡張のpackage.jsonを見ると、EnterとBackspaceの割り当てにはVim拡張のノーマルモード等を除外する条件が、Tabには補完候補や次の編集候補が出ているときに引く条件が入っています。裏返すと、条件に入っていない補完系の拡張と組み合わせると、Enter・Tabの奪い合いが起き得ます。

判断はこうです。VS Code本体で3.6.3なら、Vim拡張やCopilotと併用してかまいません。Open VSX系のエディタで3.6.2しか入らず、リスト内のTabで補完の確定が効かない場合は、拡張を入れずに標準機能とmarkdownlintで運用します。キーを1つずつ外して延命するより、衝突源を減らす方が保守は楽です。

よくある質問

Markdown All in Oneの使い方で、検索の多い疑問をまとめます。

Markdown All in Oneで目次が自動更新されないのはなぜですか?

まずmarkdown.extension.toc.updateOnSaveがfalseになっていないかを確かめてください。既定はtrueで、保存時に既存の目次を書き換えます。次に、載らない見出しにomit from tocのコメントが付いていないか、toc.levelsの範囲外でないかを確認してください。それでも直らなければ「Markdown All in One: Update Table of Contents」を手動で実行して切り分けます。

Markdown All in OneでPDFに出力できますか?

拡張単体ではPDFを直接出力できません。HTMLに書き出してブラウザの印刷機能でPDFとして保存します。画像を含む文書はprint.imgToBase64を有効にしておくと、HTMLを移動しても画像が欠けません。頻繁にPDFを作るなら、PDF出力に対応したプレビュー系の拡張を別に選んでください。

MacでAlt+Cのチェックや取り消し線のショートカットが効かないのはなぜですか?

3.6.0で、macOSのAlt+Cの既定キーが外されたためです。取り消し線のAlt+SもmacOSでは既定で割り当てがありません。使う場合は、keybindings.jsonでmarkdown.extension.checkTaskListやmarkdown.extension.editing.toggleStrikethroughに任意のキーを割り当ててください。

VSCodiumなどVS Code以外のエディタでも使えますか?

Open VSXに公開されているため、Open VSXから拡張を入れるエディタでも導入できます。3.6.3ではEclipse Theiaへの対応も入りました。ただしOpen VSX側は2026年10月時点で3.6.2のままなので、補完系の拡張と併用するなら、リスト内でTabが期待どおりに動くかを最初に確かめてください。

特定のワークスペースだけでMarkdown All in Oneを無効にできますか?

ワークスペース単位で無効にすることが可能です。拡張機能ビューで拡張の歯車メニューから「Disable (Workspace)」を選ぶと、そのワークスペースでだけ止まります。この拡張はREADME.mdを含むフォルダを開いた時点でも起動するので、Markdownをほとんど書かないリポジトリでキー衝突を避けたいときに使えます。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2024.07.11 テックブログ PEP8とは?Pythonコーディング規約の基本ルールとチェックツール(Ruff対応)
  2. 2026.09.28 テックブログ タイムズカーの不正アクセスと免許証画像160万件の流出|退会者まで残さない保管設計
  3. 2026.09.27 コラム 法定調書合計表とは?令和8年分の書き方と提出義務、給与・支払データからの集計自動化
  4. 2026.05.22 テックブログ Irodori-TTSとは?v4.1の使い方・絵文字一覧・商用利用とv3からの変更点
  5. 2026.03.24 テックブログ EARS記法とは?5つの基本型と複合型の書き方・日本語例文・Kiroでの使い方

RELATED POSTS 関連記事

目次