emacsの設定ファイル.emacsを複数の環境(異なるPC、OS)で統一する方法


今までemacsの設定ファイル(.emacs)がOS等の違いで記述が異なる箇所があった。
そのため異なる部分は別にして共通部分のみ共有してきた。
色々調べて、全て共有することができるようになったのでメモっておく。


emacs lispではOS情報は[system-type]という変数に格納されている。
Linuxではgnu/linuxMacではdarwinBSDではgnu/kfreebsd、windowsではwindows-ntとなるようだ。


また、現在のホスト名も[system-name]という変数に格納されている。
つまり、Linuxのuser1という環境でのみ用いる設定は

(when (and (eq system-type 'gnu/linux) (equal system-name "user1"))
  (setq ...)
)

と書いたり、Macでのみ用いたい設定には

(when (eq system-type 'darwin)
  (setq ...)
)

と書けばよい。

これで全ての設定ファイルが共有できる。