GNU Emacs とは?
GNU Emacs は、GNU プロジェクトの一部として 1984 年に Richard Stallman によって開発が始められた、高い拡張性とカスタマイズ性をもつテキストエディタです。
"the extensible, customizable, self-documenting real-time display editor"(拡張可能で、カスタマイズでき、自己文書化するリアルタイム表示エディタ)
と称されます。
最大の特徴は、その機能のほとんどが Emacs Lisp という Lisp 方言で実装されている点です。エディタの挙動そのものを Emacs Lisp で書き換えられるため、設定ファイルを書くだけでキーバインドや見た目はもちろん、まったく新しい機能まで自由に追加できます。「自分専用のエディタに育てられる」と言われるのはこのためです。
また、単なるテキストエディタの枠を超えています。ファイル管理(Dired)、Git 操作(Magit)、メール(Gnus)、タスク・ノート管理(Org-mode)、ターミナル、LSP クライアント(Eglot)などを Emacs の中で完結させられ、「Emacs は優れたテキストエディタを備えた OS だ」というジョークがあるほどです。
なお GNU Emacs は GPL ライセンスで配布される フリーソフトウェア であり、ソースコードの閲覧・改変・再配布が自由に認められています。
環境
- OS: macOS Tahoe
- Emacs: 30.2
セットアップ
GNU Emacs のセットアップ方法は複数あります。
macOS では、Homebrew を使うのが便利だと思います。
macOS でのインストール全般については、Emacs JP のドキュメントも参照してください。
なぜ複数の方法があるのかというと、Emacs は macOS 向けに「公式の Cocoa(NS) ビルド」だけでなく、macOS との親和性を高めた派生版やパッチ適用版がコミュニティから提供されているためです。目的(OS との親和性・カスタマイズ性・手軽さ)に応じて選びます。
参考: https://emacs-jp.github.io/tips/versions#macos
Emacs Mac Port
Mitsuharu Yamamoto 氏による派生版で、ネイティブ GUI を実装することで macOS との親和性を強化したバージョンです(スムーズスクロールなど)。
現在 Homebrew で配布されている emacs-mac は Emacs 29 をベースにしています(実験リポジトリ経由で 30 / 31 も利用可能)。
https://github.com/railwaycat/homebrew-emacsmacport
brew tap railwaycat/emacsmacport
brew install emacs-mac
Emacs Plus
通常の Emacs にパッチを追加し、デフォルトのビルドオプションを変更したものです。
ネイティブコンパイル(AOT)や tree-sitter などを既定で有効にし、豊富なアイコンも選べます。
恐らく、一番よく使われています。
https://github.com/d12frosted/homebrew-emacs-plus
brew tap d12frosted/emacs-plus
brew install emacs-plus
Emacs
Homebrew の通常 formula(--cask なし)でインストールするパッケージです。
ターミナルでのみ Emacs を使用し、GUI サポートが一切不要の場合に使用できます。
brew install emacs
GNU Emacs For Mac OS X
brew install --cask emacs でインストールできる、ビルド済みの Emacs パッケージ(emacsformacosx.com の .app)です。
ビルドを待たずにすぐ使えるため、最も手軽な選択肢です。Emacs JP でも入門者にはこの方法が案内されています。
brew install --cask emacs
バージョンの確認
インストールできたかを確認するため、バージョンを表示します。確認方法はターミナルからと Emacs の中からの両方があります。
ターミナルから
emacs --version
バージョンとライセンス情報が表示されれば、インストール完了です。
スクリプトなどでバージョン文字列だけを取り出したい場合は、次のように評価結果を出力させることもできます。
emacs --batch --eval '(princ emacs-version)'
Emacs の中から
ここで知っておきたいのは、emacs-version には「変数」と「関数」の2つの顔がある点です。
変数 emacs-version は "30.2" のようなバージョン文字列そのものを保持します。
一方、関数 (emacs-version) はビルド日時やアーキテクチャまで含んだ説明的な文字列を返します。
対話的に確認するなら、次のコマンドが使えます。
-
M-x emacs-version: エコーエリアにバージョンを表示する(C-u M-x emacs-versionでカーソル位置に挿入) -
C-h C-a(M-x about-emacs): About 画面を開く。バージョンが記載されている - 起動直後のスプラッシュ画面にもバージョンは表示されている
*scratch* バッファや M-x ielm で emacs-version と入力し、C-j または C-x C-e(eval-last-sexp)で評価すれば、値を直接確認できます。
設定ファイルの作成
Emacs では、Emacs Lisp という Lisp 言語で設定ファイルを記述します。
設定ファイルは、ホームディレクトリ配下の ~/.emacs.d/init.el に置きます。
まだディレクトリが無い場合は、次のように作成します。
mkdir -p ~/.emacs.d
touch ~/.emacs.d/init.el
最後に
これで Emacs を使った開発環境が整いました。
今後はこの設定ファイル(init.el)を編集して、自分だけの Emacs に育てていきましょう。