add-hook
というわけで、add-hookについて。
hook というのは、「ひっかけるかぎ」である。それぞれの Elisp の中に用意されていて、その名前が分ったら、利用出来る。
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 ファイル名"が自動で入るようになった。
次のこと
上のコードにも出てきている"lambda"。
直接は関係なさそうだけど、C#3.0でもラムダ式が出てきている。
少し理解できるようにしてみよう。