【Obsidianより良い?】Doom Emacsとは?Macbookにインストールして使い心地を試してみた

Doom Emacsとは?
Doom Emacsは、Emacsを基盤にした高度にカスタマイズ可能なテキストエディタの一つです。シンプルな見た目とは裏腹に、柔軟性が高く、プログラミング、ライティング、タスク管理、知識管理など、多様な用途に対応できます。
Doom Emacsの主な特徴は以下の通りです:
- カスタマイズ性:自分の用途に応じた最適な構成が可能。
- ちょっとNerd向けデザイン:機能性と美しさを両立したシンプルなUI。
- クロスプラットフォーム対応:大体のOSでも動作し、ローカル環境にデータを保存。
これまでNotionやObsidianなどの生産性ツールを試してきましたが、「もっとNerdっぽいツールを使ってみたい!」という気持ちでDoom Emacsに挑戦してみることにしました。
なぜDoom Emacsを導入しようと思ったのか?
1. いろんなツールを試すのが好き
NotionやObsidian、Todoistなど、生産性向上ツールをいくつか試してきました。それぞれに魅力はありましたが、どれもしっくりこない部分がありました。新しいツールを試すのが好きな私は、次の選択肢としてDoom Emacsに挑戦してみることに。
2. 聞いたことのないツールがオタク心をくすぐった
Doom Emacsの「難しそうだけどカッコいい」という雰囲気に惹かれました。シンプルなだけでなく、使いこなせば非常に高機能になるツールである点が、オタク心をくすぐります。
3. 拡張性やカスタマイズ性への期待
Doom Emacsは、膨大なカスタマイズが可能で、ユーザーのニーズに応じた無限の可能性を秘めています。「自分だけのエディタ」を作り上げる楽しさに期待しています。
4. プラットフォームに依存しない環境が欲しかった
Obsidianのようにローカルにファイルが保存されるスタイルが好きです。Doom Emacsならどのプラットフォームでも同じ体験ができ、将来的にデータが失われる心配も少ないと考えています。
データはgithubで管理しようと思います。
Doom Emacsをインストールしてみた
使用環境
今回、Doom Emacsを以下の環境にインストールしました。
- デバイス:MacBook M2 Pro
- OS:macOS Sequoia 15.1.1
インストール手順
以下の手順でDoom Emacsをインストールしました。
まず公式ページからインストール方法を確認します。
1. Doom Emacsをクローン
以下のコマンドでDoom Emacsをクローンします。
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install
1. 必要なdependenciesを入れる
Homebrewは入れてあったので、スキップしています。
以下のコマンドで必要なdependenciesを入れます。自分の環境に応じて変更してください。
# required dependencies
brew install git ripgrep
# optional dependencies
brew install coreutils fd
2. emacs-plusをインストール
macbookなので、以下に沿ってコマンドを入力します。
emacs-macでキーバインドがうまく動作しない事象が起きたので、emacs-plusを入れました。
brew tap d12frosted/emacs-plus
brew install emacs-plus
ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications/Emacs.app
自分の環境では、which emacsで場所を確認したところ、/opt/homebrew/bin/emacsに入っていたので上記のコマンドを調整しました。
ln -s /opt/homebrew/opt/emacs-plus/Emacs.app /Applications/Emacs.app
これでアプリのアイコンがアプリケーションに出てきます(エイリアス)
3. 文字化けの対応
emacsを立ち上げたところ、ダッシュボードの文字が変な箇所があったので、以下のコマンドで文字化けが解消されました。
M-x nerd-icons-install-fonts
*M-xは、oprion + xでできます。
これでエラーが出なければ一旦はインストール完了。
エラーが出た場合は、以下で起動し直して、エラー内容を確認。
emacs --debug-init
ChatGPTなどのAIで解決策をもらうのもいいですし、自力頑張って直すのもいいと思います。
追記:GUI(アプリアイコン)から起動すると色々設定が反映されないのを解消しました
ターミナルからemacsで起動しているときは、.doom/内のconfig.elやinit.el、package.elの設定がちゃんと反映されていたり、ちゃんとTodoリストが見れていました。
しかし、GUI(アプリアイコン)から起動すると諸々の設定が反映されないという問題が起きたので、修正しました。
自分の場合、~/.zshrcに以下の記述があり、それが問題でGUIで起動の時とコマンドラインから起動する時の設定が異なっていました。(GUIの方が効いていない状態に)
export DOOMDIR=~/.doom.d
この書き方は変数の展開が行われないため、DOOMDIR が正しく設定されない可能性があります。
なので、この書き方を以下のように変更しました。
export DOOMDIR="$HOME/.doom.d"
変更後の手順
.zshrc を保存したら、次のコマンドで設定を再読み込みします。
source ~/.zshrc
正しく設定されているか確認します。
echo $DOOMDIR
期待する出力:/Users/hogehoge/.doom.d
GUI アプリケーションに反映するため、launchctl を使います。
launchctl setenv DOOMDIR "$HOME/.doom.d"
Emacs GUI を再起動し、再度以下を実行して確認してください。
(getenv "DOOMDIR")
option + xで「eval-expression」を選択して上記を入力しエンターするとOKです。
期待する出力:/Users/hogehoge/.doom.d
いくつか原因は考えられましたが、自分の場合は以下でした。
- ~/.zshrc内の記述に誤りがあった。(触ってないのですが。。。)
- export DOOMDIR=~/.doom.d のままだと、DOOMDIR が展開されないため問題の原因
- 上記の流れでlaunchctl を使うことで、GUI アプリケーションにも環境変数を反映すると解決
Doom Emacsを触ってみた第一印象
Vimライクなキーバインドの快適さ
Doom EmacsはVimライクなキーバインドを採用しているため、Vimの操作に慣れている人にとっては直感的に操作できます。私自身は完全にVimに慣れているわけではありませんが、それでもすぐに馴染むことができました。Emacsのデフォルトのキーバインドを学ぶ負担を減らしてくれる点はありがたいです。
軽快な動作
MacBook M2 Pro上で試したところ、Doom Emacsは非常にスムーズに動作しました。カスタマイズ性の高さが魅力のEmacsですが、時折重いというイメージもありました。しかし、Doom Emacsは軽快さに優れており、現代的なPC環境に最適化されているように感じます。
今後の活用予定
Doom Emacsを導入した目的は、生産性の向上と作業環境の統一です。以下のような活用方法を試していきたいと考えています。
タスク管理ツールとして活用
Doom EmacsのOrg modeを活用し、タスク管理を効率化する予定です。これにより、ToDoリストの作成、スケジュールの管理、プロジェクトの進捗を一元化し、紙の手帳や別のアプリに頼らずに済む環境を整えたいと考えています。
Second Brain(セカンドブレイン)の構築
知識管理ツールとして注目されるOrg Roamを活用し、自分専用のSecond Brainを構築します。これにより、学びやアイデア、プロジェクトに関する情報をリンクでつなぎ、検索性を高めることで、より効果的な知識活用を目指します。
作業環境の一元化
Doom Emacsをメインの作業環境として使用し、プログラミング、ドキュメント作成、メモ管理など、日常的な作業を1つのツールで完結させたいと考えています。これにより、複数のツールを切り替える時間や手間を削減し、生産性を向上させることが期待されます。
諦めてObsidianに落ち着く可能性も高いですが、、、。
まとめ
Doom Emacsは、ただのエディタではなく、生産性向上のための強力なツールだと感じました。特に、そのカスタマイズ性や拡張性の高さは他のツールでは得られない魅力があります。まだ使いこなすには時間がかかりそうですが、それも楽しみの一部です。
次回のDoom Emacs関連の記事では、Org modeを使ったタスク管理について具体的な設定や使い方を紹介する予定です。Doom Emacsを使って新しい作業環境を構築したい方は、ぜひご期待ください!