Emacs 31:Markdown-ts モードへの非公式ガイド

2026/08/27 22:22

Emacs 31:Markdown-ts モードへの非公式ガイド

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Emacs 31 は markdown-ts-mode を導入します。これは tree-sitter テクノロジーを活用した Markdown パーシングのための実験的ツールであり、特定の文法の opt-in 式の読み込みと手動インストール(例:

treesit-install-language-grammar
を経由して)を必要とします。旧 MELPA リポジトリとは異なり、新セットアップはエラーなく動作させるために設定更新または特定の実行フラグ(例えば
-Q --load
)の適用を要求します。このモードは CommonMark と GitHub Flavored Markdown の仕様をサポートし、Org-mode の慣習(fill/outline 折りたたみなど)を模倣することでパワーユーザーへの導入を容易にします。言語に敏感なコードナビゲーション (
M-.
)、テーブル操作(転置、整列)、HTML コメントを介した TOC の再生成、PDF/HTML 向けエクスポートオプションといった高度な機能を提供します。ただし、実験的リリースであるため、安定性が将来のバージョンで約束されるまで API や特定の機能が変更される可能性があります。特に、間接バッファは現在、パーサーや font-lock 機能を共有していません。

Key Points List

本文

Emacs 31 に新登場:
markdown-ts-mode
とは?

Emacs 31 がリリースされました。特に注目すべきは、

markdown-ts-mode
という新しい Markdown モードの実装です。このモードは現時点で**実験的(Experimental)**としてマークされています。本記事では、このモードの特徴、インストール方法、基本機能、および注意点について解説します。


1. 機能面での位置付け

markdown-ts-mode
は Tree-sitter を用いた高度な文法解析を行います。

  • 実験的モード:導入には同意(opt-in)が必要であり、すべての機能が完全に安定しているとは限りません。
  • 対応仕様

導入ガイドは Tree-sitter の扱い方が難しいため、まずは設定から始めます。


2. インストールと起動手順

Emacs はデフォルトでこのモードを有効にしていません。手動での読み込みが必要です。

ユーザー設定ファイルからの追加

use-package
を使用している場合(推奨):

(use-package markdown-ts-mode
  :bind (:mode "\\.md\\'" #'markdown-ts-mode)
  :hook (markdown-ts-mode . treesit-ensure))

use-package
を使わない場合:

(require 'markdown-ts-mode)
(add-hook 'markdown-mode #'markdown-ts-mode)
(treesit-ensure)

テスト環境での起動(最小限の設定)

設定ファイルを変更せず試す場合は、以下のコマンドで Emacs を起動します。

emacs -Q --load 'testing.el'

(注:テスト用ファイルを

testing.el
として作成し、中身を読み込む想定)

重要: パッケージマネージャー(MELPA など)へのインストールは不要です。古くアーカイブ化された MELPA は Emacs 31 で動作しません。標準搭載の

markdown-ts-mode
を使用してください。


3. 最初の Markdown ファイルを開く

Tree-sitter ベースのモードを使用すると、システムに文法(Grammar)がインストールされていないとエラーになります。

起動時のクイズ

Markdown ファイル(例:

test.md
)を開くと、Emacs がシステム上の文法を見つけられず、以下の手順でインストールを提案します。

  1. 「Install grammar?」 と尋ねられますので
    y
    を押します。
    • Emacs はリポジトリからソースをダウンロードし、コンパイルしてインストールします。
  2. Markdown では「メイン解析用」と「インライン解析用」の 2 つの文法が必要です。2 番目のインストールも許可しましょう(
    y
    )。

確認すべき項目

もし表示されない場合は以下の条件を満たしているか確認してください。

  • Emacs が Tree-sitter でコンパイルされているか?
    • M-:
      (featurep 'treesit) RET を実行し、
      t
      が返ります。
  • 必要なツール(
    make
    ,
    gcc
    など)がインストールされているか?
  • Tree-sitter バイナリ(例:
    tree-sitter-cli
    )が存在するか?
    • tree-sitter --version
      で確認可能です。

文法の自動生成とトラブルシューティング

Tree-sitter モードは「共有資産」です。ファイルに TOML/YAML ヘッダーなどがあると、それに対応する文法が必要です。

  • 不足している文法のインストール
    M-x treesit-install-language-grammar RET yaml RET
    
  • 自動的に登録されない場合(YAML の例)は、ソースコードから期待されるリポジトリを確認し、手動でコンパイルしてインストールする必要があります。

重要:

-ts-mode
は文法に依存します。文法の更新に合わせて常に最新の文法を使用する必要があります。


4.
markdown-ts-mode
の機能概要

このモードは Org-mode と互換性を重視しており、Emacs ユーザーにとって馴染み深いキーバインディングを持っています。

基本操作:編集 (Editing)

  • 太文字:
    **bold**
    (入力) →
    C-c C-x C-f
    で強調。
  • 斜体:
    *italic*
    (入力) →
    i
    キーで強調。
  • 取り消し線:
    ~~str~~
    s
    キー。
  • インラインコード:
    `code`
    c
    キー。
  • マークアップの隠し:
    C-c C-x RET
    (
    markdown-ts-toggle-hide-markup
    ) 実行すると、入力記法が見えない状態で編集できます(Org-mode と同様)。
    • ヒント:
      M-q
      はリストや引用内の改行も自動修正します。

見出し (Headings)

  • 入力:
    #
    ,
    ##
    , ...
    ######
    または Setext 形式(
    ===
    /
    ---
    )も認識。
  • レベル変更:
    • 昇格:
      M-<left>
    • 降格:
      M-<right>
  • 移動:
    • セクション全体を上に/下に移動:
      M-↑
      /
      M-↓
  • 折りたたみ: 見出しの
    TAB
    で可視性を切り替え(アウトライン機能)。

リスト (Lists)

  • 入力形式:
    -
    ,
    +
    ,
    *
    または番号付きリスト。
  • チェックボックス (GFM 準拠):
    • 再生成/削除:
      C-c C-c
      (
      markdown-ts-toggle-checkbox
      )
    • 再番号付け:
      C-c C-r
      (
      markdown-ts-renumber-list
      )
    • 新しいアイテム追加:
      M-RET

ブロックとコード (Code Blocks)

  • 挿入:
    C-c C-,
    キーを押した後、以下のキーで種類を選択。
    • `
      : フェンス付きコードブロック(言語タグ可)。
    • ~
      : ティルダフェンス。
    • q
      : 引用ブロック。
    • d
      : 区切り線。
    • t
      : テーブル。
  • フォント化: 言語が指定されたコードブロックは、対応する言語のモードでフォント化されます。色がない場合は文法不足の可能性があります。
  • コンテキスト表示: コードブロック内部では、
    M-x markdown-ts-code-block-in-context-mode
    を有効にすると、言語ごとの操作(TAB でインデント、言語キーなど)が可能になります。

テーブル (Tables)

  • 挿入:
    C-c C-, t
    または
    M-x markdown-ts-table-insert-table
  • 内部操作: 専用モードに入るため、セル移動や行数調整が可能です。
    • セル移動:
      TAB
      ,
      S-TAB
    • 行の挿入/削除:
      M-RET
      ,
      M-↓
      ,
      M-Shift-↓
      など。
    • 列の挿入/削除:
      M-→
      ,
      M-←
      ,
      M-Shift-→
      ,
      M-Shift-←
      など。
    • 整列 (Align):
      C-c C-t a

リンクと画像

  • リンク:
    [text](url)
    および
    [text][ref]
    。フラグメントリンク(
    #id
    )も動作。
  • 画像: インラインレンダリング。
    • 表示切り替え:
      C-c C-x C-v
    • 設定:
      markdown-ts-image-max-width
      ,
      markdown-ts-display-remote-inline-images

移動とナビゲーション

  • 移動キー:
    • 次の見出し:
      C-c C-n
    • 前の見出し:
      C-c C-p
    • 親見出しへ:
      C-c C-u
    • コードブロック間移動:
      C-c C-v n
      /
      C-c C-v p
  • 折りたたみ:
    markdown-ts-default-folding
    で初期表示状態を制御可能。
  • ビューモード:
    M-x markdown-ts-view-mode
    を実行すると、読み込み専用の簡素なナビゲーションモードになります。

目次 (TOC) とエクスポート

  • 目次生成: HTML コメント形式で埋め込むことができます。
    • テンプレート挿入:
      M-x markdown-ts-toc-insert-template
    • 生成/更新/クリア:
      M-x markdown-ts-toc-generate
      ,
      M-x markdown-ts-toc-update-before-save-mode
      など。
  • エクスポート: パンドック(Pandoc)などを介して PDF や HTML に変換可能です。
    • コンバーター指定なし:デフォルトのコンバータを使用。
    • 表示:
      markdown-ts-convert-display-function
      でブラウザに出力できます。

5. よくある問題と注意点

実験的機能について

  • API と動作は変更される可能性があります
  • 次回のリリースで「実験的」というラベルが外られることを目指していますが、現時点では回避策(Workaround)が必要です。

バグの原因となる主な要因

  1. 文法の共有: Tree-sitter の文法は外部資産です。Emacs 内のバグではなく、共有リポジトリ側の仕様や不具合の影響を受けます。
  2. ビルド環境: 事前コンパイルされたパッケージがなくても、ソースからコンパイルできます。ただし、
    make
    や C コンパイラが必要です。Node.js を必要とする文法もあるため注意が必要です。
  3. 間接バッファ (Indirect Buffers):
    • Tree-sitter と間接バッファは相性が悪いです。
    • パーサーやフォント化(Font-lock)は共有されません。
    • markdown-ts-mode
      でも
      -ts-mode
      全般で、間接バッファ内のクローンにはフォント化が反映されない場合があります(Emacs の制限のため)。

バグ報告について

問題が発生した場合、Emacs 自体のバグではなく、以下のケースが多いです。

  • 文法の解析ロジックの問題。
  • Tree-sitter エコシステム側の問題。
  • Emacs と Tree-sitter の統合の問題。

報告時は

M-x report-emacs-bug RET
を使用し、最小で再現可能な例を含めることを推奨します。特にフォント化、文法インストール、テーブル機能、他のモードとの相性に関する情報は重要です。


まとめ:ぜひ試してみてください

markdown-ts-mode
はまだ進化途中ですが、非常に強力なツールです。実験的というラベルに囚われず、以下のように利用することをお勧めします。

  • Markdown ファイルで試す:異なる機能や設定を遊び倒し、改善点を発見しましょう。
  • フィードバックを送る:問題があれば、Emacs 開発者ではなく
    markdown-ts-mode
    のメンテナに報告してください。
  • 制限点との付き合い方:回避策を考えたり、文法のバージョンアップに対応したりするプロセスに参加することで、より安定した環境を作ることができます。

「準備万端」かどうかは関係なく、このモードの可能性を開発者と共有し合うことで、Emacs の Markdown エディタ体験は確実に向上していきます。

同じ日のほかのニュース

一覧に戻る →

2026/08/28 2:17

1.1.1.1 の DNS キャッシュ最適化でメモリ使用量を 100TB 削減

## Japanese Translation: Big Pineapple は、5 つの主要なストレージ最適化によりパーエントリーフッタープリントを 50% 以上削減したことで、DNS インフラストラクチャを大幅に革新することに成功しました。`Vec` と `String` フィールドをボックスポインタに置換し、レコードセクションを単一のリストへ統合し、不要なオーナーフィールドを除去し、大きな列挙型バリアントをボックス化してパディングを削減し、レコードを連続的なワイヤフォーマットバッファに格納することで、膨大な量の無駄なヒープ容量を排除しました。これらの改善は、特に 1 クライアントネットワークにつき複数の照会バージョンをキャッシュする必要がある ECS クライアントサブネット(ECS)照会を処理する場所にとって極めて重要です。2026 年 5 月 18 日から 7 月 6 日までのプロダクションロールアウト後、システムは劇的な効率向上を達成しました:平均居住メモリは 9.3 GB から 5.3 GB に低下し(p99 使用量の 43% 削減)、実質的に Gen 13 サーバー 130 機以上の RAM を解放しました。また、挿通スループットが 43% 増加し、照会遅延は 19% 減少することで、高負荷下でも船団がより信頼性高く動作すると同時に、大きなコスト削減を実現しました。

2026/08/28 0:56

小型モデルがやってきました

## Japanese Translation: 本質的なメッセージは、人工知能の最近の進歩により、運用コストが劇的に削減されたため、Luna などのコスト効率の高いモデルが消費者向けサブスクリプションにおいて実現可能になったという点です。以前は、高トークンコスト(旧モデルでタスクを実行する際に約$1 かかっていたのに対し、新しいモデルでは約$0.10 で済むというシナリオが例)が障壁となり、消費者にとって月次 AI プランは数学的に不可能でした。新しい技術により、企業は破格な予算なしに強力な AI にアクセスできるようになり、その結果として消費者向けグレードのサブスクリプションが登場しました。 企業の大部分の仕事は「トークン・スパイラー(大量生成型)」のカテゴリーに属しており、画期的な新しさを優先するよりも速度と応答性を重視しています。日常業務の約 95% は深い発見ではなく実行上のロジスティクスを占めています。Fable などの最先端モデルは稀な研究ブレイクスルー(「IQ 180」)には不可欠ですが、将来の市場はこの高コストのイノベーション用ツールと、標準的な対話向けの低価格で効率的なオプションの間で分かれることになります。現在の成功には、企業環境において安全性を確保し、ロール管理を行い、プロンプトインジェクション攻撃を防ぐための新しい「ハーネス(枠組み)」を構築することにかかっています。この変化により、企業は標準的なタスクのために高価な人間による「革新的思考者」を、応答性の高い AI エージェントで置換できるようになりました。結局のところ、この進化は AI を排他的な贅沢品から、日常業務用の実用的かつ手頃な価格のユーティリティへと変革させ、ついに大衆にとって消費者向けグレードのサブスクリプションが現実的となりました。

2026/08/27 23:08

メカニカル・ムーブメント No.507

## Japanese Translation: 本プロジェクトでは、507 の異なるアニメーションの完全なコレクションを編成することを目的としていますが、アーカイブからいくつかのエントリが現在欠落しています。利用者がこの拡大するライブラリをナビゲートできるよう、色分けされたサムネイルで完成作品と未完成のものを視覚的に区別し、右上に配置されている「prev」と「next」リンクにより、サムネイルページの間の簡単な閲覧が可能になっています。デジタル倉庫は、ヘンリー・T・ブラウンによる元のイラストをクラシックな技術書の参考資料と並べて収録することで歴史的意義を備えています。将来の発展には、507 の完全なセットが達成されるまで新しいアニメーションを順次リリースするものがあります。チームはタイムラインについて定期的に Facebook や Twitter などのソーシャルメディアプラットフォームで情報を共有することで透明性を維持しています。最終的には、ユーザーは現代的なデジタル作品と本物の歴史的アートワークの両方にアクセスできる利点を享受でき、プロジェクト自体に関する情報も「About」ページで入手可能です。