Emacs 編集モードのカスタマイズ
Rev.2を表示中。最新版はこちら。
各言語の編集モードに関する設定のメモ
1. C言語
C言語の編集モードでは変数c-mode-hookの値が参照される。設定ファイル(init.el等)に以下のように書いてc-mode-hookを設定しておけばよい。(setq c-mode-hook '(lambda () (setq c-basic-offset 8) ; 字下げ (setq tab-width 8) ; Tab幅 (setq c-auto-newline nil) ; 自動改行をしない ))
lambdaはリストが関数であることを示す識別子。関数の前についているシングルクォート(')は関数を評価せずリストをそのまま返すことを意味する。これによりc-mode-hookには"(lambda nil (setq c-basic-offset 8) (setq tab-width 8) (setq c-auto-newline nil))"が設定されることになる。
上記では、変数c-mode-hookにsetqで関数を代入していたが、c-mode-hookがすでに設定があった場合、上書きされてしまう。設定を追加するには以下のようにadd-hookを使用する。Hook用変数を設定するのはadd-hookの方が推奨らしい。
(add-hook 'c-mode-hook '(lambda () (setq c-basic-offset 8) ))
2. Perl
Perlの編集モードの設定にはcperl-mode-hookが使用される。(add-hook 'cperl-mode-hook '(lambda () (setq cperl-indent-level 4) ; 字下げ幅 ))