add-hook

というわけで、add-hookについて。

Emacs dot.emacs /add-hook

hook というのは、「ひっかけるかぎ」である。それぞれの Elisp の中に用意されていて、その名前が分ったら、利用出来る。

hookの意味はわかったが、どんな時に「ひっかける」んだろう?

dot.emacs/add-hook

かぎ(hook) を設定する
hook とは、何かを起動する時や、終了する時に 自分用になにかしたいことを設定する。

つまり、指定した関数が起動する時や終了する時に処理されるってことか・・・

ファイル開くときにmodeが変わるってことは

hookが実行される時にbuffer-file-nameを見に行けば、今のファイル名がわかる!

(add-hook 'csharp-mode-hook (lambda ()
                              (setq c-basic-offset 4
                                    tab-width 4
                                    indent-tabs-mode nil
				    compile-command (concat "csc " buffer-file-name))))

最後の行を追加。これでC#のcompile時に"csc ファイル名"が自動で入るようになった。

蛇足

「dot.emacs」でググったらいっぱい出てきた!
.emacs」じゃ出てこないなぁと思ったら・・・(当たり前)

次のこと

上のコードにも出てきている"lambda"。
直接は関係なさそうだけど、C#3.0でもラムダ式が出てきている。
少し理解できるようにしてみよう。