あまり自由でない環境でEmacsenを使おうという試み

投稿日:

このタイトルの「自由」は自由ソフトウェアのことではなく、単純に好き勝手ができない環境という意味。

UNIX 界隈で Vi or Emacs と言えば宗教戦争であり、勝者不在の戦いとも言える。個人的にはEmacsenをメインエディタとしていたが、しかしこの選択には多大なデメリットがある。

個人で掌握していない環境(例えば会社で運用するサービス環境)では、余計なパッケージを入れることはやはり憚られるのだ。そんな環境の中でエディタを利用しなければいけない時には、Viを使うことになる。

のだが、多少悪あがきしてみよう。

QEmacs

Emacsen のひとつに Quick Emacs (QEmacs) というものがある。 Charlie Gordon 氏が作成したもので、以下の特徴を備えている:

  • いわゆる Ersatz Emacs (*1)
  • (Micro) Emacs に似たキーバインド
  • UTF-8のサポート
  • 大容量ファイルの高速な編集
  • 使いやすい2ペインdired (デフォルトで自動的に起動する)
  • Buffer List
  • 比較的シンプルなソースコード

2ペインdiredは特に設定ファイル群を弄るときには強力な存在だ。また日本人にとってUTF-8のサポートはありがたい。 /etc を弄る程度のつもりでも、他人が書いたファイルには日本語のコメントが入っていたりする。 そして Ersatz Emacs においてUTF-8をサポートするエディタはあまり多くないのだ。

シンプルなソースコードなので、機能追加もさほど苦労することがない。また依存関係が少ないので、静的バイナリをビルドすることも簡単だった。難点はドキュメントの少なさで、逆に普通に ~/.qe/config で設定を変更しようとすると苦労したりする。

このコードを修正して、個人的に必要な設定をデフォルトにしたもの を作成している。 このコードを configure --extra-ldflags="-static" && make すれば、ワンバイナリで即利用できるエディタが完成するという理屈だ。

で、こんなファイルをサービス環境に持ち込んで良いのか? それは知らんが、develop環境なんかに仕込むにはちょうど良いだろう。


(*1) Richard Stallman 曰く「拡張不可能なEmacsの模倣」。MicroEMACS のように軽量ながら拡張性を持たないEmacsenのこと。Ersatzは「粗悪な代用品」の意であり、RMSらしいparanoicな命名である。 https://www.emacswiki.org/emacs/ErsatzEmacs

EMACSの模倣品を使用していながら真のEMACS自体を見たことがないユーザーは、EMACSの全ての利点を享受していると信じ込まされます。(略)このような混乱を避けるために、EMACS の拡張不可能な模倣を「Ersatz EMACS」と呼ぶことを強くお勧めします