小さいマクロを一つ二つインストールするだけなら
.emacs.el
ファイルにでも書いておけばすみますが、
大抵はその内沢山のマクロをインストールすることになると思います。
最近は個人で Linux や FreeBSD などの UNIX 系の OS をパソコンに導入している人も多いので、特に大きなものは /usr/share/emacs/site-lisp の下にディレクトリを作成して、まとめて入れることも多いと思いますが、 そこまで大袈裟なものではない場合や、 学校や会社などで、root 権限を持っていない場所にマクロをインストールすることなども多いでしょう。
こういう場合は自分のホームディレクトリの下に
~/lisp
などの適当な名前のディレクトリを作り、
次のようにして load-path を通します。
(setq load-path (cons "~/lisp/" load-path))
やり方は他にもいろいろあります。 追加するディレクトリが多い場合は、次のように書くのも手でしょう。
(setq load-path (append '("~/lisp" "~/lisp/19" "~/mylisp") load-path))
ともかくこうしてパスを通しておいて
~/lisp
の下に追加する Emacs Lisp のファイルを置きます。
このファイルを例えば myfile.el
だとしておきます。
この時バイトコンパイルしておくと、より速くロードしたり実行したり出来るようになります。
もっとも、大抵は劇的に速度が違うわけではないので、特にこまめにファイルを書き直したりするようなものは、
バイトコンパイルしない方が都合が良いかもしれません。
さて、追加するマクロが小さかったり、頻繁に使うマクロである場合は
.emacs.el
に
(load "myfile")
と書いておけば、Emacs 起動時に自動的に読み込んでくれます。
ただし、大きくてあまり使わないようなファイルを全てこの形でロードすると起動が大変だし、Emacs も重くなっちゃいます。
そういう場合はオートロードを使います。例えば myfile.el(c)
の中で、mycommand
というコマンドが定義されていたとします。
この場合、例えば
(autoload 'mycommand "myfile" "ここには説明を書く" t)
と書いておけば mycommand を実行する時点で初めて myfunc をロードするようになり ます。説明は面倒なら省略出来ます。(その場合は nil とでも書いといて下さい。) また、最後の引数の t は mycommand がインタラクティブに呼び出せることを指定して います。(本当はもう一つ引数があるのだけど、それは C-h f autoload なんかで調べて下さい。)
Emacs がEmacs Lispで書かれたファイルを探し にいくディレクトリのこと。現在の値は、例えば load-path の後の直 後でC-x C-eとタイプすることで分る。これに新しいディレ クトリを追加する方法なんかはマクロの追加 の仕方の所を見て下さい。
詳しいことは略しますが、まあ、Emacs がより速く読んだり実行したり 出来る形式にすることだと思えばよいです。バイトコンパイルするには、 Mule の中で M-x byte-compile-file RTN foo.el RTN な どとすれば、OK。沢山のファイルを一度にバイトコンパイルするには diredでファイルをマークしてから B をタイプするのが簡単。
Emacs のマクロ言語。というよりは、Emacs 自身がこの上で動いている といってもよい。ちゃんとした Lisp 言語なので、普通のプログラムも これで書くことが出来る。もっと知りたい方は取り敢えず Emacs Lisp 入門 をお読み下さい。 なお、元の Texinfo ファイルの現在の最新版は version 0.97 です。 emacs-lisp-intro-jp-97.tar.gz から取ってこれます。 ほとんど同じ物は ftp://ftp.mcsnet.co.jp/fext/lib06/ からも入手できます。(神さんに感謝)
DIRectory EDitor の略だと思うのですが、VZ のファイラーみたいなものだと 言えば分る人には分ると思います。C-x d に続けてディレクトリを指定することで起動できるので、そこで C-h m とか C-h b とすれば、使い方は分るでしょう。
Emacs のコマンドでは、数引数(前置引数)と呼ばれるものを取ることができるものがあります。
簡単な例だと、C-u (universal-argument
) に続けて数字、
例えば 8 を入力して、続けて a をタイプすると、
a が8個挿入されます。
a というコマンドが 8 回繰り返されたことになるわけです。
数字を省略すると 4 が渡されます。
C-u の代わりに META キーや ESC などが使えたりもします。
上の例では数引数が反復回数として扱われましたが、数引数の意味はコマンドによって違います。
数引数の有無だけに意味があるコマンドもあります。
個別に知りたい場合は、C-h f (describe-function
を使うといいです。)
また、多くの場合、負の引数を与えると、正の引数とは逆の操作になります。