Changes between Version 33 and Version 34 of Emacs


Ignore:
Timestamp:
2011/02/03 01:26:23 (13 years ago)
Author:
munepi
Comment:

Emacs ガイドを Emacs/EmacsGuide? へ移動。

Legend:

Unmodified
Added
Removed
Modified
  • Emacs

    v33 v34  
    6464  :type 'string) 
    6565(if (null emacs-ime) 
    66     (setq emacs-ime "scim")) 
     66    (setq emacs-ime "ibus-el")) 
    6767 
    6868(defcustom vine-default t 
     
    204204;;; 環境変数 EMACS_IME と異なる IME を使いたい場合は、 
    205205;;; 以下を有効にして設定することができます。 
    206 ;; (setq emacs-ime "atokx3");; mozc ibus-el scim tamago scim-bridge wnn7egg atokx3 skk anthy-el scim-bridge 
     206;; (setq emacs-ime "atokx3");; anthy-el atokx3 ibus-el mozc tamago scim scim-bridge skk wnn7egg 
    207207 
    208208;;; マクロサーチパスの追加 
     
    413413   * デフォルトで文脈依存な文字幅を wide character としてしまう? -> vine-default-faces.el にて対応 [done] 
    414414 
    415 = Emacs ガイド(案)- vine-default について = 
    416  
    417 == system-wide な設定 == 
    418  
    419 Emacs を起動すると、site-start.el を読み終われば、 
    420 すぐに ~/.emacs.el を読み込みます。 
    421 site-start.el は Vine Linux の distribution-wide な設定ファイルのため、 
    422 4.2 以前で system-wide な設定を施すためには、 
    423 RPMパッケージがアップデートされるたびに site-start.el を編集する必要がありました。 
    424  
    425 そこで 5.0 では、 
    426 直接 site-start.el を変更しなくても、 
    427 system-wide な設定をできるようにしました。 
    428  
    429 system-wide な設定ファイルは、 
    430 Emacs のメジャーバージョンが XX の場合、 
    431 /etc/emacs/emacs-XX-local.el 
    432 に配置されています。 
    433 Emacs-XX を起動したとき、 
    434 もし /etc/emacs/emacs-XX-local.el が存在すれば、 
    435 site-start.el の一番最後に読み込まれます。 
    436 したがって、distribution-wide な設定よりも emacs-XX-local.el が優先されます。 
    437  
    438  
    439 == Vine Linux のデフォルト設定:vine-default == 
    440  
    441 このドキュメントは [http://ml.vinelinux.org/vineseed/msg00320.html VineSeed:17162] を改編して作成しました。 
    442  
    443 Vine Linux の Emacs 23 では、 
    444 Emacs 上で動作するアプリケーションのパッケージをインストールしたら、 
    445 ユーザ初期設定ファイル ~/.emacs.el に何も設定を記述しなくても、 
    446 そのアプリケーションがある程度使えるように、 
    447 あらかじめ設定を用意し、その設定を自動的に読み込むようにしています。 
    448 この Emacs における Vine Linux のデフォルト設定を vine-default と呼ぶことにします。 
    449  
    450 === 使い方 === 
    451  
    452 vine-default は、/usr/share/emacs-23.x/site-lisp 以下に格納されています。 
    453  * vine-default-base.el:Emacs の基本的な設定 
    454  * vine-default-faces.el:Emacs のフォントやカラーの設定 
    455  * ''package''/vine-default-''package''.el:''package'' の設定 
    456  
    457 Emacs を起動すると、デフォルトで vine-default の boolean が t になっているので、 
    458 vine-default を読み込みます。 
    459  
    460 もし vine-default をすべて無効にしたい場合は、 
    461 ~/.emacs.el に 
    462 {{{ 
    463 (setq vine-default nil) 
    464 }}} 
    465 を設定します。 
    466 この場合は、メニューバーと言語ロケール以外は何も設定されていません。 
    467  
    468 vine-default のうち、いくつかの設定を無効にすることができます。 
    469 各 vine-default は、vine-default-''name'' の boolean が定義されていて、 
    470 デフォルトでは t になっています。 
    471  
    472 例えば、vine-default-base, vine-default-faces,  
    473 vine-default-yatex, vine-default-mew を無効にしたい場合は、 
    474 ~/.emacs.el に 
    475 {{{ 
    476 (setq vine-default-base nil 
    477       vine-default-faces nil 
    478       vine-default-yatex nil 
    479       vine-default-mew nil 
    480     ) 
    481 }}} 
    482 を設定します。 
    483  
    484 いくつかのEmacs Lispパッケージのみを有効にしたいときは、一旦すべての vine-default を無効にした上で、いくつかの vine-default を有効にしてください。 
    485  
    486 例えば、vine-default.yatex, vine-default-tamago のみを有効にしたい場合は、 
    487 ~/.emacs.el に 
    488 {{{ 
    489 (setq vine-default nil) 
    490  
    491 (requires 'vine-default-yatex) 
    492  
    493 (requires 'vine-default-tamago) 
    494 }}} 
    495 を設定します。 
    496  
    497  
    498 === 設定されている vine-default の閲覧 === 
    499  
    500 Emacs 上からインストールされている elisp パッケージにあらかじめ設定されている vine-default の設定を閲覧できます。 
    501  
    502 Emacs 上で 
    503 {{{ 
    504 M-x show-vine-default 
    505 }}} 
    506 を実行すると、起動している Emacs のバージョンに対応した vine-default の設定を閲覧できます。 
    507  
    508  
    509 === 高度な使い方 === 
    510  
    511 vine-defaultでの設定を上書きしたい場合はフックを使います。 
    512  
    513 例えば、vine-default で set-frame-font には次のように「Monospace 12」が設定されてたとします。 
    514 {{{ 
    515 (if window-system  
    516     (set-frame-font "Monospace 12")) 
    517 }}} 
    518  
    519 これを ~/.emacs.el で変更したい場合は after-vine-default-setup-hook をフックしてください。 
    520 {{{ 
    521 (add-hook 'after-vine-default-setup-hook 
    522           (lambda () 
    523             (if window-system  
    524                 (set-frame-font "Monospace 10")))) 
    525 }}} 
    526  
    527 上記はあくまで一例として紹介しましたが、 
    528 フォントの設定を変更したい方は、 
    529 現実的には、vine-default-faces 自体を使わないと思われますので、 
    530 ~/.emacs.el に 
    531 {{{ 
    532 (setq vine-default-faces nil) 
    533  
    534 (unless vine-default-faces 
    535   (if window-system (set-frame-font "DejaVu Sans Mono 10"))) 
    536 }}} 
    537 のように、vine-default-faces を無効にしておいてフォントの設定をしても良いです。 
    538  
    539  
    540 また、各 vine-default で設定されていない項目についてはフックせずに、 
    541 そのまま ~/.emacs.el に記述しても有効です。 
    542  
    543 vine-default で何が設定されているのかをよく理解していない場合は、 
    544 とりあえず after-vine-default-setup-hook へフックしてしまっても問題ありません。 
    545  
    546 そのため、別のファイル .emacs-misc.el にまとめてしまい、 
    547 以下のようにして ~/.emacs.el でフックして読み込ませてしまっても良いです。 
    548 {{{ 
    549 (add-hook 'after-vine-default-setup-hook 
    550           (lambda () 
    551             (load (expand-file-name "~/.emacs.misc.el") nil t nil) 
    552             )) 
    553 }}} 
    554  
    555 この仕組みの詳細については「vine-default の下での ~/.emacs.el の設定」セクションを参照してください。 
    556  
    557  
    558 === IME === 
    559  
    560 Vine Linux の Emacs 上における IME は、 
    561 X 上におけるそれと連動して、環境変数 EMACS_IME により設定されます。 
    562  
    563 もし EMACS_IME と異なる IME を使いたい場合は、 
    564 skk を例にすると、~/.emacs.el に 
    565 {{{ 
    566 (setq emacs-ime "skk") 
    567 }}} 
    568 を設定します。 
    569  
    570  
    571 === Vine Linux 4 の .emacs.my.el === 
    572  
    573 Vine Linux 4.2 までの ~/.emacs.el には、 
    574 ユーザ用初期化ファイル ~/.emacs.my.el があれば、 
    575 それを読み込む仕組みがありました。 
    576  
    577 Vine Linux 5.x では、vine-default に移行したため、.emacs.my.el を読み込む仕組みは廃止しました。 
    578  
    579 もし過去の .emacs.my.el を流用したい場合は、 
    580 以下のように after-vine-default-setup-hook にフックして、 
    581 ~/.emacs.my.el を読み込ませることができます。 
    582 {{{ 
    583 (add-hook 'after-vine-default-setup-hook 
    584           (lambda () 
    585             (if (file-exists-p (expand-file-name "~/.emacs.my.el")) 
    586                 (load (expand-file-name "~/.emacs.my.el") nil t nil)) 
    587             )) 
    588 }}} 
    589 ただし、Emacs 23 と Emacs 22 以前は随分仕様が変わっているので、 
    590 Vine Linux 4の Emacs 22 などで使っていた ~/.emacs.my.el をそのまま流用できるとは限りません。 
    591  
    592  
    593 === 仕組み === 
    594  
    595 vine-default は、各デフォルト設定を読み込む *-init.el を、 
    596 vine-default-setup 内で読まれる vine-default-setup-hook にひっかけて一旦ストックしておき、 
    597 after-init-hook にひっかけた vine-default-setup を実行することにより、 
    598 Vine Linux のデフォルト設定が読み込まれます。 
    599  
    600 具体的には、site-start.el と *-init.el に以下のような関数とフックを定義しています。 
    601 {{{ 
    602 ;;; Emacs default settings for Vine Linux 
    603 (defcustom emacs-ime (getenv "EMACS_IME") 
    604   "A variable of default Input Method Editor" 
    605   :type 'string) 
    606 (if (null emacs-ime) 
    607     (setq emacs-ime "scim")) 
    608  
    609 (defcustom vine-default t 
    610   "A boolean for all Vine Linux default settings" 
    611   :type 'boolean) 
    612 (if (equal (getenv "LOGNAME") "root")  
    613     (setq vine-default nil)) 
    614  
    615 (defcustom vine-default-base t 
    616   "A boolean for vine-default-base" 
    617   :type 'boolean) 
    618  
    619 (defcustom vine-default-faces t 
    620   "A boolean for vine-default-faces" 
    621   :type 'boolean) 
    622  
    623 (defvar vine-default-setup-hook nil 
    624   "*List of functions to be called at vine-default-setup") 
    625  
    626 (defvar after-vine-default-setup-hook nil 
    627   "*List of functions to be called at the end of vine-default-setup") 
    628  
    629 (defun vine-default-setup () 
    630   "a function for setup to default configurations of Vine Linux." 
    631   (if vine-default 
    632       (progn 
    633         (if vine-default-base (require 'vine-default-base)) 
    634         (if vine-default-faces (require 'vine-default-faces)) 
    635         (run-hooks 'vine-default-setup-hook) 
    636         (run-hooks 'after-vine-default-setup-hook) 
    637         ) 
    638     ) 
    639   ) 
    640  
    641 (add-hook 'after-init-hook 'vine-default-setup) 
    642 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    643  
    644 (mapc 'load (directory-files "/etc/emacs-23.0.92/site-start.d" t "\\.el\\'")) 
    645 }}} 
    646  
    647 Emacs の関連パッケージに対しては、 
    648 例えば YaTeX の場合は、 
    649 50yatex-init.el に以下のような設定を追加しています。 
    650 {{{ 
    651 (defcustom vine-default-yatex t 
    652   "A boolean for vine-default-yatex" 
    653   :type 'boolean) 
    654  
    655 (add-hook 'vine-default-setup-hook 
    656           (lambda() 
    657             (if vine-default-yatex 
    658                 (require 'vine-default-yatex)))) 
    659 }}} 
    660  
    661 vine-default-yatex.el には、YaTeX のデフォルト設定を記述し、 
    662 (provide 'vine-default-yatex) を提供するようにします。 
    663  
    664  
    665 ==== vine-default の下での ~/.emacs.el の設定 ==== 
    666  
    667 vine-default の下での Emacs の設定は、 
    668 大きくわけて以下の 3 つの設定パートに分かれています。 
    669  
    670  a. vine-default  
    671  b. vine-default が上書きしない設定 
    672  c. vine-default が上書きする設定 
    673  
    674 (a) は ~/.emacs.el を読み込んだ直後に、 
    675 /usr/share/emacs-23.x/site-lisp 以下の vine-default-*.el を然るべき順序で読み込まれます。 
    676  
    677 (b), (c) は、必要であれば ~/.emacs.el に(あるいは、.emacs.el から読み込む別の *.el に)設定します。 
    678  
    679 (b) を直接 ~/.emacs.el に設定して構いませんが、 
    680 (c) を直接 ~/.emacs.el に設定していると、 
    681 (a) により vine-default が優先されてしまいます。 
    682  
    683 例えば、以下のように ~/.emacs.el にフォントを設定していても、 
    684 後から読まれる vine-default-faces.el により「Monospace 12」に上書きされていまいます。 
    685 {{{ 
    686 (if window-system  
    687     (set-frame-font "Monospace 10")) 
    688 }}} 
    689 このような vine-default を上書きする設定は、after-vine-default-setup-hook をひっかけます。詳細は「高度な使い方」セクションを参照してください。 
    690  
    691  
    692 == Emacs Lisp パッケージ == 
    693  
    694 ここでは、Emacs Lisp パッケージの作成および emacs flavor の挙動について説明します。 
    695  
    696 Vine Linux の Emacs は、 
    697 Debian で採用している Emacs Lisp パッケージ管理の独自システムを採用しています。 
    698  
    699 Emacs Lisp パッケージをインストールしたときに、 
    700 *.el から現在インストールされている Emacs の flavor に対応した *.elc を 
    701 自動的に生成(バイトコンパイル:byte-compile)し、 
    702 必要なパスの設定やリソースの読み込みを行います。 
    703 さらに、Vine Linux の場合は vine-default の設定も同時に施されます。 
    704  
    705 逆に、Emacs Lisp パッケージをアンインストールしたときには、 
    706 通常のパッケージと同様にパッケージ自体の削除に加えて、 
    707 *.elc の削除も同時に行います。 
    708  
    709 === パッケージ構成 === 
    710  
    711 === spec ファイル === 
    712  
    713 === ''package''-{install,remove}.sh === 
    714  
    715 === ''package''-init.el === 
    716  
    717 ''package''-init.el は、 
    718 site-start.el から然るべき順序で読み込まれるように、addflavor 時に  
    719 /usr/share/emacs/site-lisp/''package''/''package''-init.el  
    720 から 
    721 /etc/emacs-''flavor''/site-start.d/NN''package''-init.el  
    722 へシンボリックリンクが張られます。 
    723  
    724 === vine-default-''package''.el === 
    725  
    726 vine-default-''package''.el は、addflavor 時にバイトコンパイルしません。