次: Terminal Init, 前: Init Syntax, 上: Init File
以下にはよく使われる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)