Emacsのカスタマイズ

Emacsの良いところの一つとして、カスタマイズ性の高さがあります。 ここでは、基本的なカスタマイズを通して、Emacsのカスタマイズについて学びたいと思います。

.emacs

.bashrc.gitconfig のようなものとして、 .emacs と呼ばれるものがあります。 .emacs はEmacsの設定ファイルです。 Emacsは、起動した時にこの .emacs の中身を見ます。

Emacsは、起動時に、

  1. ~/.emacs
  2. ~/.emacs.el
  3. ~/.emacs.d/init.el

の順に設定ファイルを探し、最初に見つかった設定ファイルを読み込みます。 通常はgitで管理がしやすい ~/.emacs.d/init.el を作成し、設定の内容を書いていきます。

Emacsが起動できなくなった場合の対処

Emacsの設定ファイルを書き間違えてしまい、Emacs自体が起動できなくなってしまう場合は、以下の方法で対処します。

emacs -q で起動する

emacs -q で起動すると、設定ファイルを読み込まない状態でEmacsを起動できます。 覚えておくと何かと便利です。

vimなど他のエディタで起動する

もちろんこういう方法があります。

設定ファイルを読み込まないようにする

init.elの名前を変更したり、空の ~/.emacs.d を作成すると、設定を読み込まなくなり、起動できるようになります。

elispについて

基本文法

elispについて超簡単に説明します。 Emacsの設定ファイルは、elispというプログラミング言語(LISPの一種)で書きます。 拡張子は .el です。 elispは関数型言語で、以下のようなの文法が基本になっています。

(hoge "huga")

これは、 hoge という関数を huga という文字列を引数にとって呼んでいることになります。

(setq tab-width 4)

setq は変数に値をセットする関数です。 tab-width という変数に整数4をセットしています。 これにより、タブの幅がスペース4つになります。

もちろん、引数を複数とる/とらない場合もありますし、引数にさらに関数をとることもできます。

コメント

; (セミコロン)から行末まではコメントとなります。

慣例として、行頭から始まるコメントにはセミコロン1つ ;; を使います。

;; タブ幅の設定
(setq tab-width 4)

行の途中から始まるコメントはセミコロン1つを使います。

(setq tab-width 4)  ; タブ幅の設定

Emacsのモードについて

Emacsには「モード」という概念があります。 モードには「メジャーモード」と「マイナーモード」があります。 Emacsが起動している時には、1つのメジャーモードと、複数のマイナーモードがあります。

例えば、〜.php を開いている時に、

  • メジャーモードとして php-mode
  • マイナーモードとして FlyC, yas が動いているとします。

php-mode は、phpのコードのシンタックスハイライトを働かせたりするためのモードです。 FlyC は、コードに文法ミスがある場合に、該当部分を表示してくれるモードでです。 yas は、コードの補完を行ってくれるモードです。

Emacsのキーバインドは、グローバルに設定したり、モードごとに設定できたりします。

グローバルに設定したキーバインドよりも、モードごとに設定されたキーバインドの方が優先されます。 そのため、設定ファイルでグローバルにキーバインドを設定しても、モードごとの設定に上書きされてしまい、 キーバインドが有効にならない場合があります。 設定がうまく動かない場合は、これを疑ってみてください。