108 | | 参考:[http://ml.vinelinux.org/vineseed/msg00320.html VineSeed:17162] |
| 121 | vine-default は、各デフォルト設定を読み込む *-init.el を、 |
| 122 | vine-default-setup 内で読まれる vine-default-setup-hook にひっかけて一旦ストックしておき、 |
| 123 | after-init-hook にひっかけた vine-default-setup を実行することにより、 |
| 124 | Vine Linux のデフォルト設定が読み込まれます。 |
| 125 | |
| 126 | 具体的には、site-start.el と *-init.el に以下のような関数とフックを定義しています。 |
| 127 | {{{ |
| 128 | ;;; Emacs default settings for Vine Linux |
| 129 | (defcustom emacs-ime (getenv "EMACS_IME") |
| 130 | "A variable of default Input Method Editor" |
| 131 | :type 'string) |
| 132 | (if (null emacs-ime) |
| 133 | (setq emacs-ime "scim")) |
| 134 | |
| 135 | (defcustom vine-default t |
| 136 | "A boolean for all Vine Linux default settings" |
| 137 | :type 'boolean) |
| 138 | (if (equal (getenv "LOGNAME") "root") |
| 139 | (setq vine-default nil)) |
| 140 | |
| 141 | (defcustom vine-default-base t |
| 142 | "A boolean for vine-default-base" |
| 143 | :type 'boolean) |
| 144 | |
| 145 | (defcustom vine-default-faces t |
| 146 | "A boolean for vine-default-faces" |
| 147 | :type 'boolean) |
| 148 | |
| 149 | (defvar vine-default-setup-hook nil |
| 150 | "*List of functions to be called at vine-default-setup") |
| 151 | |
| 152 | (defvar after-vine-default-setup-hook nil |
| 153 | "*List of functions to be called at the end of vine-default-setup") |
| 154 | |
| 155 | (defun vine-default-setup () |
| 156 | "a function for setup to default configurations of Vine Linux." |
| 157 | (if vine-default |
| 158 | (progn |
| 159 | (if vine-default-base (require 'vine-default-base)) |
| 160 | (if vine-default-faces (require 'vine-default-faces)) |
| 161 | (run-hooks 'vine-default-setup-hook) |
| 162 | (run-hooks 'after-vine-default-setup-hook) |
| 163 | ) |
| 164 | ) |
| 165 | ) |
| 166 | |
| 167 | (add-hook 'after-init-hook 'vine-default-setup) |
| 168 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 169 | |
| 170 | (mapc 'load (directory-files "/etc/emacs-23.0.92/site-start.d" t "\\.el\\'")) |
| 171 | }}} |
| 172 | |
| 173 | Emacs の関連パッケージに対しては、 |
| 174 | 例えば YaTeX の場合は、 |
| 175 | 50yatex-init.el に以下のような設定を追加しています。 |
| 176 | {{{ |
| 177 | (defcustom vine-default-yatex t |
| 178 | "A boolean for vine-default-yatex" |
| 179 | :type 'boolean) |
| 180 | |
| 181 | (add-hook 'vine-default-setup-hook |
| 182 | (lambda() |
| 183 | (if vine-default-yatex |
| 184 | (require 'vine-default-yatex)))) |
| 185 | }}} |