方法はいくつもあります.
(.emacs)
を使う.
Emacs を (-q
オプション無しで)起動すると,
普通,emacs は .emacs
というファイルを読み込みます.
(xemacs とかは .xemacs/init.el を使うことがあります).
そこで,*.el ファイルをそこに全部コピーしてしまうという手があります.
でも,これは沢山のファイルをそうしていると扱いにくくなります.
autoload
という関数を使うと,elisp (Emacs Lisp)
ファイルを動的に読み込むことができます.動的というのは,
実際に使うまでは読み込まれず,
使う時になって読み込まれるという意味です.
そのために,次の情報を emacs に教えておかないといけません.
(autoload 'e-function "elisp-file" "" t nil)
とすると,e-function というコマンドを使う時には,
elisp-file というファイルを読むということを emacs
に教えることになります.
でも,emacs はどうやってその elisp-file をみつけるのでしょうか.
たとえば,elisp ファイルをどこかにまとめて install してある場合には
どうやってその install 先のディレクトリを emacs
に教えるのでしょうか.
まさかファイルシステム全部を探すわけにはいきません.
emacs は load-path
という変数を持っており,
この変数がどこを探すかを示しています.
これは shell における PATH 変数のようなものです.
そこで,load-path
でファイルがあるディレクトリを設定し,
autoload
でファイルとコマンドを設定しておけば,
emacs は コマンドや関数名から
ファイルを探し出すことができるようになります.
そのパスを load-path
に追加するには,
あなたの .emacs
ファイルに次のような行を追加して下さい.
;; ;; load path ;; (setq load-path (append (list "/your/emacs/lisp/files/under/this/directory" ) load-path))
次のプログラムが使えるでしょう.changeh2c.el
設定:
;; ;; changeh2c : change .hh and .C file with one command ;; (autoload 'changeh2c "changeh2c" "change .hh and .C file with one command" t nil)
(global-set-key 'f8 'changeh2c)
(defun my-cpp-mode-common-hook () (progn (local-set-key 'f8 'changeh2c) )) (add-hook 'c-mode-common-hook 'my-cpp-mode-common-hook)
次のプログラムが使えるでしょう.wc.el
設定:
;; ;; wc.el (word counter) ;; (autoload 'count-chars-region "wc" nil t)
M-x count-chars-region
.
次のプログラムが使えるでしょう.where.el
設定:
;; ;; where ;; (autoload 'where-is-in "where" "where *.el" t)
M-x where-is-in
.
Then input which filename do you want. ex. where.el
次のプログラムが使えるでしょう. replace-zen-to-ascii-region.el
設定:
;; ;; replace zenkaku -> ascii region ;; (autoload 'replace-zen-to-ascii-region "replace-zen-to-ascii-region" nil t)
M-x replace-zen-to-ascii-region
.