Emacs

拡張可能・自己文書化されたテキストエディタ。実体は Emacs Lisp (Elisp) のインタプリタ環境で、「テキストを編集する Lisp マシン」と言った方が正確。1976年 RMS(Richard Stallman)らに由来、GNU Emacs が本流。

核心: 編集機能そのものが Lisp で書かれている

小さな C コア(Elisp インタプリタ + 低レベル描画)の上に、エディタの大半が Elisp で実装されている。だから動作中にその場で関数を再定義でき、エディタを実行時に作り替えられる。lisp の「コード = データ」が、ライブに改造可能な環境として現れた形。

;; 選択範囲を行ソートするコマンドをその場で定義し、キーに割り当てる
(defun my/sort-region (beg end)
  (interactive "r")          ; 選択範囲を引数に
  (sort-lines nil beg end))
(global-set-key (kbd "C-c s") #'my/sort-region)

C-h f(関数)/C-h k(キー)で任意の機能の定義・ソースに即ジャンプできる=自己文書化。エディタ自身が最良のリファレンス。

構成概念

概念役割
buffer編集対象(ファイル・出力・REPL すべてバッファ)
major modeバッファの主たる編集モード(言語ごと等、排他)
minor mode直交して足す機能(行番号・補完等、複数可)
keymapキー → コマンド(Elisp 関数)の対応。階層的に上書き
minibufferコマンド入力・補完の対話領域

エディタ哲学の対比

EmacsVim / NeovimVSCode
拡張言語Elisp(エディタ内蔵の汎用 Lisp)Vimscript / LuaJS/TS(拡張は別プロセス)
編集モデルモードレス(修飾キー和音)モーダル(挿入/ノーマル)モードレス
拡張の深さコアまで再定義可(同一 Lisp 空間)設定+プラグインAPI 越し(サンドボックス)
思想「環境を自分で作る」「編集を高速化する」「すぐ使える既定」

「最高の OS だが、まともなエディタが足りない」という古いジョークは、Emacs が事実上の実行環境(メール・git・シェル・RSS まで Elisp アプリで動く)であることを言い当てている。

エコシステム(現代)

なぜ重要か

「道具を使う側が道具そのものを書き換えられる」設計の極北。設定とプラグインの境界が無く、ユーザーのカスタムも組み込み機能も同じ Elisp 空間に同居する。拡張性をコアに置く思想は lisp の自己反映性(reflection)とマクロ文化の直系で、半世紀使われ続ける耐久性の源でもある。

2026年の Emacs

半世紀目に入っても現役で、コアの近代化が続く一方、AI エディタ時代に「立ち位置」を問われている。

バージョン

AI 統合 — 「環境を自分で組む」思想が LLM 時代に効いている。

競合の中での立ち位置 — AI ネイティブ編集の波。

押さえどころ(カード化候補)

関連

Graph