Email: Takayama Fumihiko <tekezo@pqrs.org>

Emacs でホームディレクトリ以下に site-lisp を作ってパッケージの管理を楽にする

Emacs でホームディレクトリ以下に site-lisp を作ってパッケージの管理を楽にする

基本的に YaTeX とか、 hnf-mode や ruby-mode などの後から入れる elisp-file は ~/unix/emacs/package 以下にディレクトリを作って入れてしまいます。 例えば、

  • ~/unix/emacs/package/yatex/
  • ~/unix/emacs/package/hnf/
  • ~/unix/emacs/package/ruby/
とかです。

何故かと言うと

/usr/share/emacs/site-lisp 等に入れると update の際に全員が影響を受けてしまうので、 あまり好みではありません。

SKK なんかは, .skk の書式が変ったりしますしね。

環境移植の際もホームディレクトリだけを持ってくれば OK なので楽です。

Step1 最初に

~/unix/emacs/package を作成してそれぞれのパッケージを入れます。
% mkdir -p ~/unix/emacs/package

% cd ~/unix/emacs/package
% tar zxf apel-10.7.tar.gz

Step2 次に

.emacs.el に以下の内容を加えます。
;; set load-path to ~/unix/emacs/package
(defun my-site-lisp-registration (directory)
  (let ((dirs nil))
    (mapcar (lambda (x)
              (and (file-directory-p x)
                   (not (member (file-name-nondirectory x) '("CVS" "cvs" ".svn")))
                   (setq load-path (cons (file-name-as-directory x) load-path))
                   (my-site-lisp-registration x) dirs))
            (directory-files directory t "^[^\.]"))
    dirs))

(let ((my-site-lisp-dir (convert-standard-filename "~/unix/emacs/package")))
  (if (file-directory-p my-site-lisp-dir)
      (my-site-lisp-registration my-site-lisp-dir)))

あとは

パッケージを追加するには ~/unix/emacs/package 以下に入れれば OK です。


Comments for This Page.
Date: 2007-07-22 18:22 (JST)