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 と入力することにより電卓モードとなります。