[Emacs]->[補足]

Emacs についての補足ファイル

マクロの追加の仕方

小さいマクロを一つ二つインストールするだけなら .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 なんかで調べて下さい。)

辞書

load-path

Emacs がEmacs Lispで書かれたファイルを探し にいくディレクトリのこと。現在の値は、例えば load-path の後の直 後でC-x C-eとタイプすることで分る。これに新しいディレ クトリを追加する方法なんかはマクロの追加 の仕方の所を見て下さい。

バイトコンパイル

詳しいことは略しますが、まあ、Emacs がより速く読んだり実行したり 出来る形式にすることだと思えばよいです。バイトコンパイルするには、 Mule の中で M-x byte-compile-file RTN foo.el RTN な どとすれば、OK。沢山のファイルを一度にバイトコンパイルするには diredでファイルをマークしてから B をタイプするのが簡単。

Emacs Lisp

Emacs のマクロ言語。というよりは、Emacs 自身がこの上で動いている といってもよい。ちゃんとした Lisp 言語なので、普通のプログラムも これで書くことが出来る。もっと知りたい方は取り敢えず Emacs Lisp 入門 をお読み下さい。 なお、元の Texinfo ファイルの現在の最新版は version 0.97 です。 emacs-lisp-intro-jp-97.tar.gz から取ってこれます。 ほとんど同じ物は ftp://ftp.mcsnet.co.jp/fext/lib06/ からも入手できます。(神さんに感謝)

dired

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 を使うといいです。) また、多くの場合、負の引数を与えると、正の引数とは逆の操作になります。


[Emacs]->[補足]