あまり自由でない環境で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」と呼ぶことを強くお勧めします