Skip to content

Latest commit

 

History

History
107 lines (89 loc) · 5.44 KB

1408190339.system-specific-settings.org

File metadata and controls

107 lines (89 loc) · 5.44 KB

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にマッチする

ちなみに関数も指定できますが、使用例が思い付きませんでした(笑)

system-specific-settings インストール

このパッケージは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