emacs system-specific-settings.el : OS(プラットホーム)やホスト名ごとの処理を記述するマクロ群 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット
パッケージ名 | system-specific-settings |
概要(原文) | Apply settings only on certain systems |
リポジトリ | MELPA |
取得先 | https://github.com/DarwinAwardWinner/emacs-system-specific-settings |
バージョン | 20140818.757 |
関連記事 | package:system-specific-settings |
Emacs Lispプログラミングをしたり、複数のマシンで共通する設定を書くときには ホスト名やOSごとの処理を記述する必要が出てきます。
そこで、system-specific-settings.elで提供されているマクロを使うと便利です。
- when-system-name-match
- when-system-type-match
- if-system-name-match
- if-system-type-match
これらのマクロはautoloadされるので、MELPA経由でインストールすれば requireを書かなくても使えます。
使い方は通常のwhenやifと同じですが、条件の書き方が異なります。
- 完全一致
- ‘(not X) →X以外
- ‘(X Y) →XまたはY
- ‘(regexp . RE) →REにマッチする
ちなみに関数も指定できますが、使用例が思い付きませんでした(笑)
このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。
M-x package-refresh-contents M-x package-install system-specific-settings
Emacs Lispプログラミングをしたり、複数のマシンで共通する設定を書くときには ホスト名やOSごとの処理を記述する必要が出てきます。
そこで、system-specific-settings.elで提供されているマクロを使うと便利です。
- when-system-name-match
- when-system-type-match
- if-system-name-match
- if-system-type-match
これらのマクロはautoloadされるので、MELPA経由でインストールすれば requireを書かなくても使えます。
使い方は通常のwhenやifと同じですが、条件の書き方が異なります。
- 完全一致
- ‘(not X) →X以外
- ‘(X Y) →XまたはY
- ‘(regexp . RE) →REにマッチする
ちなみに関数も指定できますが、使用例が思い付きませんでした(笑)
;;; ホスト名で分岐
(let ((system-name "fuga01"))
;; string=で判定
(when-system-name-match "fuga01"
1) ; => 1
;; 正規表現指定
(when-system-name-match '(regexp . "fuga")
1) ; => 1
)
;;; GNU/linuxならば…
(when-system-type-match 'gnu/linux
'linux) ; => linux
;;; 非Windowsならば…
(when-system-type-match '(not windows-nt)
'not-windows) ; => not-windows
(when-system-type-match '(gnu gnu/linux gnu/kfreebsd darwin cygwin)
'unix) ; => unix