= Emacs = このページでは、 次期 5.0 に対応する予定の emacs-23, emacs22-22.x に関する情報を集めています。 * emacs : emacs-23.x, デフォルト * emacs22 : emacs-22.3 * emacs21 : orphaned * emacs23 : orphaned, emacs-23.x で replace == TODO == === Emacs23 === * emacs23.spec * %files * /usr/share/emacs-23.0.91{,etc} が重複 * altenative の優先度 (emacs: 50, emacs22: 30) * etcskel の emacs 関連 * scim-bridge.el のパッケージング * vine-default の調整 * vine-default-base.el: 要調整 * vine-default-faces.el: faces の調整はしない。-> フォントのみにしました [done] * vine-default-mouse.el: 不要だと思う。[obsolete] * vine-default-misc.el: vine-default-base.el に書けば十分。[obsolete] * vine-default-IIIMECF.el の調整 * 関連パッケージの vine-default 対応 * yatex [done] * wl [done] * mew [done] * tamago [done] * anthy [done] * skk [done] * wnn7egg [done] * IIIMECF [done] * uim * w3m-el * php-mode * po-mode * riece * liece * ... * vine-default の設定を簡単に閲覧できるものが必要!?例えば…、 * showemacsvl ... なスクリプトを作成 * を省略した場合は、全パッケージを対象 * Emacs からは M-x view-vine-default で showemacsvl の結果を表示 === Emacs22 === * etcskel の emacs 関連 == Vine Linux のデフォルト設定:vine-default == Vine Linux の Emacs 23 では、 Emacs 上で動作するアプリケーションのパッケージをインストールしたら、 ユーザ初期設定ファイル ~/.emacs.el に何も設定を記述しなくても、 そのアプリケーションがある程度使えるように、 あらかじめ設定を用意し、その設定を自動的に読み込むようにしています。 この Emacs における Vine Linux のデフォルト設定を vine-default と呼ぶことにします。 === 使い方 === vine-default は、/usr/share/emacs-23.x/site-lisp 以下に格納されています。 * vine-default-base.el:Emacs の基本的な設定 * vine-default-faces.el:Emacs のフォントやカラーの設定 * ''package''/vine-default-''package''.el:''package'' の設定 Emacs を起動すると、デフォルトで vine-default の boolean が t になっているので、 vine-default を読み込みます。 もし vine-default をすべて無効にしたい場合は、 ~/.emacs.el に {{{ (setq vine-default nil) }}} を設定します。 この場合は、メニューバーと言語ロケール以外は何も設定されていません。 vine-default のうち、いくつかの設定を無効にすることができます。 各 vine-default は、vine-default-''name'' の boolean が定義されていて、 デフォルトでは t になっています。 例えば、vine-default-base, vine-default-faces, vine-default-yatex, vine-default-mew を無効にしたい場合は、 ~/.emacs.el に {{{ (setq vine-default-base nil vine-default-faces nil vine-default-yatex nil vine-default-mew nil ) }}} を設定します。 vine-default をすべて無効にしたときに、いくつかの vine-default を有効にすることができます。 例えば、vine-default.yatex, vine-default-tamago のみを有効にしたい場合は、 ~/.emacs.el に {{{ (setq vine-default nil) (requires 'vine-default-yatex) (requires 'vine-default-tamago) }}} を設定します。 === IME === Vine Linux の Emacs 上における IME は、 X 上におけるそれと連動して、環境変数 EMACS_IME により設定されます。 もし EMACS_IME と異なる IME を使いたい場合は、 skk を例にすると、~/.emacs.el に {{{ (setq emacs-ime "skk") }}} を設定します。 === 仕組み === vine-default は、各デフォルト設定を読み込む *-init.el を、 vine-default-setup 内で読まれる vine-default-setup-hook にひっかけて一旦ストックしておき、 after-init-hook にひっかけた vine-default-setup を実行することにより、 Vine Linux のデフォルト設定が読み込まれます。 具体的には、site-start.el と *-init.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) (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)) (run-hooks 'vine-default-setup-hook) (run-hooks 'after-vine-default-setup-hook) ) ) ) (add-hook 'after-init-hook 'vine-default-setup) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (mapc 'load (directory-files "/etc/emacs-23.0.92/site-start.d" t "\\.el\\'")) }}} Emacs の関連パッケージに対しては、 例えば YaTeX の場合は、 50yatex-init.el に以下のような設定を追加しています。 {{{ (defcustom vine-default-yatex t "A boolean for vine-default-yatex" :type 'boolean) (add-hook 'vine-default-setup-hook (lambda() (if vine-default-yatex (require 'vine-default-yatex)))) }}} === 旧版 .emacs.my.el ===