VineSeed ML アーカイブ



[VineSeed:17162] [TestPkg] emacs23, mew, wl, yatex

  • From: Munehiro Yamamoto <munepi@xxxxxxxxxxxxxxxx>
  • Subject: [VineSeed:17162] [TestPkg] emacs23, mew, wl, yatex
  • Date: Sat, 11 Apr 2009 23:11:50 +0900
山本@千葉です.

/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