cal.zip (2007/06/20)
cal.l、cal.lc を xyzzy の site-lisp ディレクトリに、CAL を etc ディレクトリに置き、.xyzzy か siteinit.l に以下のよう記述。
(in-package "editor")
(export '(cal cal-mode) "editor")
(autoload 'cal "cal" t)
(autoload 'cal-mode "cal" t)
(in-package "user")
また好みに応じ上記 ‘(autoload 'cal-mode "cal" t)’ の下に以下の各種設定を記述して下さい。以下の例はデフォルト値です。変更する必要がない場合は記述しなくてかまいません。
(add-hook '*cal-hook*
#'(lambda ()
;; ここに各自の設定を記述
)
)
キーワードファイル名を指定します。
(setf *cal-keyword-file* "CAL")
正規表現で色付けするキーワードを指定します。
(setf *cal-regexp-keyword-list*
(compile-regexp-keyword-list
'(
;; プロンプト
("\\$" nil (:color 9))
;; 答え
("^.*$" nil :string)
;;====================================
;; 演算子
("\\+" nil 0)
("-" nil 0)
("\\*" nil 0)
("/" nil 0)
("\\\\" nil 0)
("%" nil 0)
("\\^" nil 0)
("!" nil 0)
("&" nil 0)
("|" nil 0)
("`" nil 0)
("\\~" nil 0)
("<<" nil 0)
(">>" nil 0)
("=" nil 0)
("," nil 0)
;; 演算子
;;====================================
)
)
"正規表現キーワードのリスト。"
)
キーバインドはデフォルトで以下のように設定されています。
;; 履歴に追加して実行
(define-key *calc-mode-map* #\RET 'cal-eval-line-add-history)
;; 括弧の対を挿入
(define-key *calc-mode-map* #\( 'cal-insert-parenthesis)
;; プロンプト先頭 or 行頭へ移動
(define-key *calc-mode-map* #\C-a 'cal-beginning-of-line)
;; 入力した式、答えの挿入 or 答えをコピー
(define-key *calc-mode-map* '(#\C-c #\C-c) 'cal-modifier)
;; 履歴を過去に辿る
(define-key *calc-mode-map* #\C-M-n 'cal-complete-next)
;; 履歴を未来に辿る
(define-key *calc-mode-map* #\C-M-p 'cal-complete-previous)
以上の設定を済ますと、M-x cal と入力することにより電卓モードとなります。