以下にはよく使われるLispの式の例をあげておきます。
(setq c-tab-always-indent nil)
変数の値を「真」にするにはt
を設定し、
逆に「偽」にするにはnil
を設定する。
(setq-default case-fold-search nil)
ここではsetq-default
で変数のデフォルト値を設定し、
その変数に対してローカルな値を設定していないすべてのバッファで有効である。
setq
でcase-fold-search
に値を設定すると、
カレントバッファのローカルな値だけに影響し、
初期化ファイルで記述したいこととは異なるだろう。
(setq user-mail-address "coon@yoyodyne.com")
メイルアドレスを必要とする多くのEmacsパッケージは、
user-mail-address
の値を使う。
(setq default-major-mode 'text-mode)
text-mode
を指定しているのは、
これがテキストモードに入るためのコマンドだから。
コマンド名のまえのシングルクォートは、シンボルを定数として扱うため。
さもないとtext-mode
という変数を参照することになってしまう。
(set-language-environment "Latin-1")
(add-hook 'text-mode-hook '(lambda () (auto-fill-mode 1)))
これはノーマルフック変数(see Hooks)にフック関数を追加する例。
ここでは関数としてlambda
で始まるリストを指定し、
シングルクォートを前置して式ではなく定数として扱わせる。
Lispの関数について説明するのは本書の範囲外だが、
この例を理解するには、テキストモードに入るときに
(auto-fill-mode 1)
が実行されるのだと考えておけば十分。
この式を別の式に変えたり、式を複数並べてもかまわない。
Emacsにはturn-on-auto-fill
という関数が用意されており、
その定義は(lambda () (auto-fill-mode 1))
になっている。
したがって、上の例をもっと簡単に書くとつぎのようになる。
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(load "foo")
load
に渡す引数が相対ファイル名、つまり、
‘/’や‘~’で始まらない場合には、
load
はload-path
(see Lisp Libraries)の
ディレクトリ群を順に探索する。
(load "~/foo.elc")
ここでは絶対ファイル名が使われているので、探索は行わない。
make-symbolic-link
が実行されるように
バインディングを設定する。
(global-set-key "\C-xl" 'make-symbolic-link)
または
(define-key global-map "\C-xl" 'make-symbolic-link)
ここでもシンボルmake-symbolic-link
を変数としての値ではなく
定数とするためにシングルクォートが使われていることに注意。
(define-key lisp-mode-map "\C-xl" 'make-symbolic-link)
next-line
を
実行するようになっているすべてのキーを、
かわりにforward-line
を実行するように直す。
(substitute-key-definition 'next-line 'forward-line global-map)
(global-unset-key "\C-x\C-v")
キーを未定義にする必要のある場合の1つとして、 そのキーをプレフィックスにしたい場合がある。 たとえば、C-x C-v anythingを定義すると、 C-x C-vは自動的プレフィックスになるが、 しかしそのまえにC-x C-vの通常の(プレフィックスではない)定義を 未定義に戻しておく必要がある。
(modify-syntax-entry ?\$ "." text-mode-syntax-table)
narrow-to-region
を確認なしに使えるようにする。
(put 'narrow-to-region 'disabled nil)