本記事は Ansible Advent Calendar 2025 の1日目の記事です。
世の中には数多くのエディタがあります。最近の人気具合を Text Editor - Popularity Trends で見ると、vscode が圧倒的に人気があり、次いで neovim となっています。Emacsは残念ながらランキング圏外になっています(一応 spacemacs がランクインしていますが・・・)。
また Stack Overflow の調査結果を元にした 戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある を見ても、Emacs は安定して低空飛行の状態です。
とはいえ、Emacs は栄枯盛衰の激しいIT業界において半世紀にも渡って利用されおり、そこには他のエディタには無い魅力があるからです。
私自身、Emacs を20年以上使っており、普段の仕事の多くで利用しています。もちろん Ansible Playbook も Emacs で書いています。この記事では、Emacs ではどんな感じで開発を行なっているのかを紹介し、Emacs に興味を持つきっかけにできればと思っています。
Emacs は Windows, Mac, Linux などメジャーな環境ではほぼ使えます。どのプラットフォームにインストールしても、初期状態の Emacs で Playbook を書くとこんな感じになります。
はい、ほぼメモ帳に書いているのとおなじような感じになります。基本的なコピー&ペーストやアンドゥといった操作はできますが、通常のショートカットとは異なり、Emacs独自のショートカットを用いる必要があります。
シンタックスハイライトもされず、お世辞にも使いやすいとは言えません。もはや修行です。
でも安心してください。Emacs には Emacs Lisp という言語を使って、いくらでも、それこそエディタという枠を超えて自由に動作を拡張・カスタマイズ可能です。この自由さこそが Emacs の真骨頂だとも言えます。自分の手癖に馴染むようにどこまでも事細かに挙動を変更できるため、一度自分に最適化して調整して、それに慣れてしまうと離れがたくなってしまうのです。
自分が普段使っている Emacs 環境で Playbook を書くとこんな感じになります。
一般的なエディタと同様に、シンタックスハイライトされ、インデントの深さが可視化され、CoPilot と連携してコード生成も使えちゃうのです。
生成AIとの連携でコードのリライトやリファクターをさせることも可能です。以下は ChatGPT を使って Playbook の一部をインラインでリライトしている様子です。
vim や vscode で使えるマルチカーソルもいけちゃいます。複数の場所にちょっとした文字列を差し込みたいときに便利です(置換の正規表現を考えるのが面倒なときに使います)
Emacs では動作を拡張・カスタマイズするための Emacs Lisp が世界中で開発されており、パッケージとして配布されています。これらをパッケージマネージャーを使って簡単に導入することができます。
自分が普段使っている環境を元にEmacsでのPlaybook作成環境を紹介させていただきました。モダンな vscode にも勝るとも劣らないのではないでしょうか?(言い過ぎ?)
普段使っている道具を変えるのは大変だと思いますが、気が向いたときにサブのエディタとして利用して気分を変えるのも良いと思います。いつもと違う気分でコーディングに向き合えるはずです。
年末年始の空き時間にでもぜひお試しください。