- 追加された行はこの色です。
- 削除された行はこの色です。
RIGHT: [[覚え書き]]
RIGHT:[[覚え書き]]
*Emacs のたち上げ時のログをとる [#p17da136]
**Emacs を batch モードでたちあげる. [#g4d6e950]
% emacs -batch -l ~/.emacs
**.emacs のデバッグ [#k0699ae0]
1) .emacs を読み込まないで起動.
% emacs -q
2) debug-on-error を ON にする
M-x set-variable
debug-on-error
t
3) 手動で .emacs をロードする
M-x load-file
~/.emacs
これでエラーが発生した時点でスタックトレースが表示される.
ちなみに .emacs の所々に
(message "point(1) passed")
といった行をいれておくと,どこまでうまくいったかがわかる.
**.emacs に新しい設定をいれる時の鉄則 [#d78919f2]
新しい設定は必ずファイルの最後にいれる.
というのは,エラーが起こるとそれ以後の行が実行されないから.
----
*Emacs の起動オプション [#u5e687db]
Emacs の起動オプションは,以下のようなものがあるみたいです.
(標準ライブラリの startup.el より引用)
;;; Commentary:
; These are processed only at the beginning of the argument list.
; -batch execute noninteractively (messages go to stdout,
; variable noninteractive set to t)
; This option must be the first in the arglist.
; Processed by `main' in emacs.c -- never seen by lisp
; -t file Specify to use file rather than stdin/stdout
; as the terminal.
; This option must be the first in the arglist.
; Processed by `main' in emacs.c -- never seen by lisp
; -nw Inhibit the use of any window-system-specific display
; code; use the current virtual terminal.
; This option must be the first in the arglist.
; Processed by `main' in emacs.c -- never seen by lisp
; -q load no init file
; -no-init-file same
; -u user load user's init file
; -user user same
; -debug-init Don't catch errors in init file; let debugger run.
; These are processed in the order encountered.
; -f function execute function
; -funcall function same
; -l file load file
; -load file same
; -insert file same
; file visit file
; -kill kill (exit) emacs
----
*scratch buffer [#f7ff945c]
NetNews に流れていた Emacs Lisp プログラミングを行うための (ちょっとした)コツから引用します.
Emacs で,Lisp のプログラムを実行または評価(eval)する方法
(1) *scratch* バッファに行きます.(Emacs を起動した時の最初のバッファ)
(2) モードラインに "(Lisp Interaction)" という(モード名)表示が 出ていることを確認します. もし,"(Fundamental)" など別のモードになっていたら,
M-x lisp-interaction-mode RET
を入力して,Lisp Interaction モードにします。
(3) *scratch* バッファの任意の場所(通常は最後)に,実行したい Lisp の式を書きます.
例: (find-file "~/.emacs")
(4) Lisp の式の後ろにカーソルを持っていきます.
例: (find-file "~/.emacs")■
↑
カーソル
(5) ここで,C-j (LFD とも呼ぶ)を入力します. Lisp Interaction モードでは, C-j は直前の Lisp の式を実行(評価=eval)して, その結果を表示(print)するためのコマンド(eval-print-last-sexp)が 割り当てられています. 実際には,上の例を実行すると, ホームディレクトリにある,初期化ファイル(.emacs)が開かれます.
(6) この時、*scratch* バッファには,以下のように表示されます. "#<buffer .emacs>" というのは,(find-file "~/.emacs") の返した値です.
例: (find-file "~/.emacs")
#<buffer .emacs>
**参考: [#h2bd5ae6]
(call-interactively 'find-file) を実行すると, C-x C-f を入力した場合と同じように, "Find file: ~/" というプロンプトが出ます.