Emacs超入門[2]:基本的なカスタマイズ方法と定番カスタマイズ例

 Emacsの特徴の1つに、柔軟にカスタマイズが可能な点がある。本記事ではフォントの変更や外観の変更、キーバインディングの変更と行った基本的なカスタマイズと、定番のカスタマイズを紹介する。

連載:Emacs超入門

 Emacsは「Editor Macros」の略から命名されたことからも分かるように、柔軟にその動作をカスタマイズすることができる。EmacsのカスタマイズにはEmacs Lisp(elisp)と呼ばれる、Lispベースの専用マクロ言語を利用するのが一般的だが、Emacsに備えられているカスタマイズ機能を用いたカスタマイズも可能だ。elispによるカスタマイズは柔軟性に優れるものの、elispの文法はCなどの手続き型言語とは異なるため、取っつきにくさを感じる人も多いだろう。そのため、まずはカスタマイズメニューを用いたカスタマイズや、定番のカスタマイズ例をコピー&ペーストで利用する方法を覚えておくとよいだろう。

Emacsのコマンドと変数

 カスタマイズの基本を解説する前に、カスタマイズを行う際に必須となる「コマンド(command)」と「変数(variable)」について解説しておこう。Emacsにおけるほとんどの処理は、コマンドとしてその名前が定義されている。たとえば「改行する」という処理は、「newline」コマンドとして定義されている。

 Emacsはショートカットキー入力を含むキーボード入力を受け付けると、それに対応するコマンドを実行する。たとえばEnterキーを入力する、もしくは「C-m」を入力すると改行が行われるが、これはEmacs内部ではEnterキー、もしくは「C-m」の入力に対し、それに割り当てられている「newline」コマンドを実行する、という処理が行われているのである。この割り当ては自由に変更できるため、たとえばEnterキーを押した場合に改行ではなく他の処理を行わせるようにすることもできる。

 ショートカットキーに割り当てられていないコマンドは「M-x」ショートカットキーで呼び出すことができる。M-xを入力するとミニバッファに「M-x 」と表示されるので、実行したいコマンド名を入力してEnterキーを押せばよい。ミニバッファではTabキーで補完/候補一覧表示ができるほか、そのコマンドがショートカットキーに割り当てられている場合はその情報も表示される。

 なお、定義されているコマンド一覧は「apropos-command」コマンドで確認できる。「M-x」を入力後、「apropos-command」と入力してEnterキーを押すと検索キーの入力を促されるので、ここで「.*」(正規表現ですべての文字列を意味する)を指定すればよい(図1)。

図1 Emacsのコマンド一覧表示
図1 Emacsのコマンド一覧表示

 また、Emacsの挙動を設定する役割を果たしているのが「変数」である。Emacsの挙動を変えるには、この変数の値を変えればよい。なお、定義されている変数一覧は「apropos-variables」コマンドで確認できる(図2)。

図2 Emacsの変数一覧表示
図2 Emacsの変数一覧表示