2025年に Emacs 入門
2025年に VSCode でも、 Cursor でも JetBrains でも Vim でもなく、 Emacs に入門するお話。普段から Rebuild.fm や vim-jp-radio を聞いていると無性に Emacs を試したくなったのがモチベーションです。
環境
- M1 MacBook
- macOS Sequoia 15.2
ゴール
- Emacs.app がインストールされデスクトップアプリとして利用できる
- Doom Emacs で設定がいい感じになっている
Emacs とは?
ChatGPT に聞くと Emacs は、単なるエディタを超えて自由にカスタマイズできる作業環境として使われています。
とのこと。Vim だとできなかったあれこれが Emacs Lisp を使えば自由にできるという噂は聞いている程度の知識です。
Doom Emacs
設定を一から少しずつ行うのも良いですが、今回はすでにカスタマイズされた Doom Emacs(巨大な Emacs Lisp)を使うことにします。
Emacs をインストール
まずは Doom Emacs のドキュメント通りに試そうとしましたが、上手くいきませんでした。Native Comp になっていなかったり、シンボリックリンクのパスが違うなどが原因でした。
失敗例:
brew tap railwaycat/emacsmacport
brew install emacs-mac --with-modules
ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications/Emacs.app
こちらの記事を参考にリトライ:
brew install gcc glib libgccjit # native comp 関係
brew tap railwaycat/emacsmacport
brew info emacs-mac
brew install *** # info の Requireded
brew install emacs-mac --with-glib --with-librsvg --with-native-comp --with-xwidgets
エラーと解決
インストールはできるものの、brew link
に関するエラーが発生。
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /opt/homebrew
Could not symlink bin/ebrowse
Target /opt/homebrew/bin/ebrowse
is a symlink belonging to emacs. You can unlink it:
brew unlink emacs
To force the link and overwrite all conflicting files:
brew link --overwrite emacs-mac
To list all files that would be deleted:
brew link --overwrite emacs-mac --dry-run
指示通りに link
をし直します。
brew unlink && brew link emacs
シンボリックリンクの作成
link に成功したら、シンボリックリンクを homebrew の bin ディレクトリに作成します。
cp -a /opt/homebrew/opt/emacs-mac/Emacs.app /Applications
ln -fs /opt/homebrew/opt/emacs-mac/Emacs.app/Contents/MacOS/Emacs.sh /opt/homebrew/bin/emacs
エラー発生と再インストール
Emacs.app を起動しようとアイコンをクリックしても起動せず、emacs
コマンドを実行してもエラーが発生。
Error using execdir /opt/homebrew/Cellar/emacs-mac/emacs-29.1-mac-10.0/Emacs.app/Contents/MacOS/:
emacs: dlopen(/opt/homebrew/Cellar/emacs-mac/emacs-29.1-mac-10.0/Emacs.app/Contents/MacOS/../native-lisp/29.1-dd487a39/preloaded/register-80045398-5a7974d5.eln, 0x0001): tried: '/opt/homebrew/Cellar/emacs-mac/emacs-29.1-mac-10.0/Emacs.app/Contents/MacOS/../native-lisp/29.1-dd487a39/preloaded/register-80045398-5a7974d5.eln' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/emacs-mac/emacs-29.1-mac-10.0/Emacs.app/Contents/MacOS/../native-lisp/29.1-dd487a39/preloaded/register-80045398-5a7974d5.eln' (no such file), '/opt/homebrew/Cellar/emacs-mac/emacs-29.1-mac-10.0/Emacs.app/Contents/MacOS/../native-lisp/29.1-dd487a39/preloaded/register-80045398-5a7974d5.eln' (no such file)
既存の emacs が干渉していると考え、再インストールを実施。
brew uninstall --ignore-dependencies emacs
brew uninstall emacs-mac
brew install emacs-mac --with-glib --with-librsvg --with-native-comp --with-xwidgets
最終的に brew link
し直して起動に成功。
Doom Emacs のインストール
次に Doom Emacs をインストールします。こちらはドキュメントの通りにすすめます。
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install
インストール後、設定の同期と更新を行います。
doom sync
doom upgrade
Emacs.app を起動すると Doom Emacs になっているはずです。
まとめ
今回は Emacs の導入編として、インストールのみに焦点を当てました。次回があれば Org Mode など便利な機能を試したり、普段の開発で使う Rust や Go の環境を整える予定です。
Discussion