選択範囲の色を指定する

(set-face-background 'region "SkyBlue")
(set-face-foreground 'region "black")

初期設定の配色は前述のとおりアンバーイエローディスプレイを模したものですが、選択範囲の色が柔らかくわかりにくく感じました。そこで筆者の個人的な好みで選択範囲の背景色を水色、文字色を黒色にするため「init.el」に囲みの2行を追加してください。NTEmacsを一度終了し、再起動すると画面のように配色が変更が変更されます。色名はHTMLと同じく一般的なカラーネームが使用できますので、お好みの配色に変更してみましょう(図32)。

図32 「set-face-background」「set-face-foreground」で選択範囲の背景色と文字色を変更しました

フォントを「メイリオ」にする

(setq w32-enable-synthesized-fonts t)
(create-fontset-from-ascii-font
  "-outline-メイリオ-normal-r-normal-normal-12-*-*-*-*-*-iso8859-1"
  nil "myfont")
(set-fontset-font "fontset-myfont" 'japanese-jisx0208
  '("メイリオ" . "jisx0208-sjis"))
(set-fontset-font "fontset-myfont" 'katakana-jisx0201
  '("メイリオ" . "jisx0201-katakana"))
(setcdr (assoc 'font default-frame-alist) "fontset-myfont")

今度はフォントを変更してみましょう。NTEmacsにおけるフォントの変更は最初にイタリックやボールドフォントを標準フォントから作成する「setq w32-enable-synthesized-fonts t」の記述が必要です。その後、英字・日本語・カタカナの各フォントを「set-fontset-font」で指定し、最後にフォントセットの登録を行ってください。今回は12ポイントにしましたが、見えにくい場合は適切なサイズを「create-fontset-from-ascii-font」で指定しましょう(図33)。

図33 フォントセットを作成して、使用フォントをメイリオに変更した画面です

ウィンドウを透明にする

(add-to-list 'default-frame-alist' (alpha . 85))

GNU Emacs 23以降、ウィンドウの透明度を設定する機能が盛り込まれました。もちろんgnupackのNTEmacsはバージョン23.3.1(執筆時点のバージョン)ですので、同機能を使用することが可能です。「add-to-list 'default-frame-alist'」でデフォルトの透明度を0~100(数が多いほど不透明になります)で指定してください。また、複数のNTEmacsをウィンドウ表示する場合に異なる透明度を設定することも可能ですので、興味のある方はぜひ調べてみましょう(図34)。

図34 透明度を設定したNTEmacs。背景画像が映り込んでいることがわかります

このようにカスタマイズ情報を記述する「init.el」は、Lisp(リスト)というプログラム言語をベースにGNU Emacs向けに手を加えられたGNU Emacs Lispを使用しています。可読性に富んだ言語ですが、使用時(NTEmacs起動時)にはGNU Emacs Lispで記述されたファイルを読み込みインタプリタという翻訳処理が必要なため、NTEmacsの動作遅延の原因になりかねません。そのためGNU Emacsにはバイトコンパイルという、事前にGNU Emacs Lispで記述されたファイルをコンパイル(バイナリ形式に変換)する機能が用意されています。

「M-x byte-compile-file」と実行し、「~/.GNU Emacs.d/init.el」を選択してください。これで同ファイルに対してバイトコンパイルが実行され、拡張子「.elc」を持つファイルが生成されます。なお、今回は必要ありませんが、指定したフォルダーのファイルをバイトコンパイルする場合は「M-x byte-recompile-directory」と実行してください(図35~36)。

図35 「M-x byte-compile-file」を実行して、「~/.GNU Emacs.d/init.el」ファイルを選択したら[Enter]キーを押します

図36 これでバイトコンパイルが実行され、拡張子「.elc」を持つ「init.elc」ファイルが生成されます

注意しなければならないのは、NTEmacsが拡張子「.elc」を優先的に呼び出す点。「init.el」を編集した場合は一度「init.elc」ファイルを削除し、バイトコンパイルを再実行しなければなりませんので、カスタマイズ途中の場合はバイトコンパイルを実行せず、そのままお使いください。

無限の可能性を持つGNU GNU Emacs

今回はGNU Emacsという存在と簡単な使用方法、そして可能性を伝えるにとどめますが、長い歴史を持つGNU Emacs。書店に赴けば山のような関連書籍が、Webで検索すれば星の数ほど情報が用意されています。本稿で興味を持たれた方はご自身の環境にNTEmacsをインストールし、実際に使ってみてください。GNU Emacsほど"習うより慣れろ"の言葉が似合うテキストエディターはありません。

筆者も長年にわたってGNU Emacsの存在を認識していましたが、試すたびにキーストロークの複雑さになじまず、インストールしたまま放置していたのが正直なところです。今回は昔購入したGNU Emacs本を片手に使い方を一から勉強しましたが、"GNU Emacsはテキストエディターではない総合環境である"と言われる理由のひとつ、マクロ導入による機能追加や外部ツールの呼び出しの紹介には至っていません。GNU Emacsのカスタマイズは無限です。ぜひ多くのハッカーが愛した世界を堪能してください。

GNU Emacsの紹介は以上です。ナビゲーターは阿久津良和でした。次回もお楽しみに。

阿久津良和(Cactus