山本@千葉です. /VineSeed/TestPkg へ emacs23-23.0.91-2.20090325vl5.{i386,src}.rpm yatex-1.73-3vl5.{noarch,src}.rpm mew-6.2-2vl5.{i386,src}.rpm mew-common-6.2-2vl5.i386.rpm wl-2.14.0-2vl5.{noarch,src}.rpm を put しました. 今まで etcskel にあった .emacs.el 内の設定, いわゆる Vine Linux の Emacs デフォルト設定を, モジュール化しようと試みています. その設定をモジュール化するために, site-start.el に以下のような設定を追加しました. ;;; Emacs default settings for Vine Linux (defcustom emacs-ime (getenv "EMACS_IME") "A variable of default Input Method Editor" :type 'string) (if (null emacs-ime) (setq emacs-ime "scim")) (defcustom vine-default t "A boolean for All Vine Linux default settings" :type 'boolean) (if (equal (getenv "LOGNAME") "root") (setq vine-default nil)) (defcustom vine-default-base t "A boolean for vine-default-base" :type 'boolean) (defcustom vine-default-faces t "A boolean for vine-default-faces" :type 'boolean) (defcustom vine-default-mouse t "A boolean for vine-default-mouse" :type 'boolean) (defcustom vine-default-misc t "A boolean for vine-default-misc" :type 'boolean) (defvar vine-default-setup-hook nil "*List of functions to be called at vine-default-setup") (defvar after-vine-default-setup-hook nil "*List of functions to be called at the end of vine-default-setup") (defun vine-default-setup () "a function for setup to default configurations of Vine Linux." (if vine-default (progn (if vine-default-base (require 'vine-default-base)) (if vine-default-faces (require 'vine-default-faces)) (if vine-default-mouse (require 'vine-default-mouse)) (if vine-default-misc (require 'vine-default-misc)) (run-hooks 'vine-default-setup-hook) (run-hooks 'after-vine-default-setup-hook) ) ) ) (add-hook 'after-init-hook 'vine-default-setup) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; * emacs デフォルトの設定は,~/.emacs.el を読み込んだ後に, vine-default-setup を読み込むことで行います. vine-default-base, vine-default-faces, vine-default-mouse, vine-default-misc については,etcskel/.emacs.el 内の設定を基本的にモジュール化+α しただけです. この 4 つのファイルについては,etcskel を引きずって仮に入れているだけで, 叩き台として Emacs 23 に即した設定にどんどん改変すべき箇所なので, 宜しくお願いします. * 外部パッケージ yatex パッケージを例に説明しますと, パッケージとしてのデフォルト設定は,yatex-init.el に書かれていますが, さらに Vine Linux としてのデフォルト設定を追加するために, yatex-init.el に以下を追加しています. (defcustom vine-default-yatex t "A boolean for vine-default-yatex" :type 'boolean) (add-hook 'vine-default-setup-hook (lambda() (if (and vine-default vine-default-yatex) (require 'vine-default-yatex)))) vine-default-setup-hook のフックにかけて, デフォルト設定 vine-default-yatex.el を読み込んでいます. vine-default-yatex.el は yatex-install.sh で然るべき場所へ入るのですが, そんなに長くない場合は,vine-default-hoge.el は用意せずに, 直接記述するのもありだと思います. * ~/.emacs.el デフォルトで vine-default が t になっているので, ~/.emacs.el に何も書かなくても自動的に Vine のデフォルト設定が読み込まれます. 今までのように自分で全部 .emacs.el に書きたいという方などは, ~/.emacs.el のどこかに (setq vine-default nil) を入れておくと,デフォルトの設定は何も読み込まれません. また,部分的に読み込みたくない設定(モジュール)があれば, (setq vine-default-faces nil vine-default-yatex nil) などとして設定すると,そのモジュールだけが読み込まれません. さらに, (setq vine-default nil) としているけれども,とあるモジュールだけ読み込みたい場合は, 直接 (require 'vine-default-hogehoge) などとして読み込めば,事が足りるかと思います. 以上,各種 Emacs 設定のモジュール化の簡単な実装ですが, ご意見など頂戴したいと思いますので,テストをして頂ければ幸いです. ---------- 山本 宗宏 Key ID: 0x7637A1D1 Key Fingerprint: 570B C7E6 E5F3 E14F 0898 3EB8 8ECC 8310 7637 A1D1