xyzzyscheme-modeをgaucheで使う。

  1. scheme-modeを取得。http://fun.sci.fukuoka-u.ac.jp/wiki/index.php?xyzzy
  2. site-init.lか.xyzzyに以下を記述
;;; SCHEME-MODE.L SETTING
(load-library "scheme-mode")
(push '("\\.scm$" . scheme-mode) *auto-mode-alist*)
(setf *scheme-process-open-hook*
      #'(lambda (buffer)
          (if (buffer-process)
              (buffer-process)
            (progn
              (set-buffer buffer)
              (make-process
               (format
;                nil "\"~A\""
                nil "~A"
                (map-slash-to-backslash "gosh -i")))))))
  1. 以上でいいのだけど、同じバッファに出力されるのは苦手なので、scheme-mode.lに以下の修正
(defvar *scheme-run-buffer-name* "*run-scheme*")
(defun scheme-default-read-filter (proc text)
;	(insert text) (refresh-screen))
  (let ((prev-buf (selected-buffer))
        (prev-win (selected-window)))
    (set-window (get-buffer-window *scheme-run-buffer-name*))
    (set-buffer *scheme-run-buffer-name*)
    (end-of-buffer)(insert text)(end-of-buffer)
    (set-buffer-modified-p nil *scheme-run-buffer-name*)
    (set-window prev-win)
    (set-buffer prev-buf)
    (refresh-screen)))


(defun scheme-open-process ()
  (interactive)
  (when (null *scheme-process*)
    ;(let* ((process (funcall *scheme-process-open-hook* (selected-buffer))))
    (let* ((process (funcall *scheme-process-open-hook* (switch-to-buffer *scheme-run-buffer-name*))))
      (setf *scheme-process* process)
      (when *scheme-process*
        (set-process-sentinel
         *scheme-process*
         #'(lambda (proc)
             (when *scheme-process-close-hook*
               (funcall *scheme-process-close-hook* proc))
             (setf *scheme-process* nil)))
        (set-process-filter *scheme-process* *scheme-process-read-filter*))))
  *scheme-process*)

.scmファイルを開くか、任意のバッファでM-x scheme-modeでscheme-modeを起動。
C-jで、式を評価できる。

http://www.gigamonkeys.com/book/lispbox/download.html
lispboxなるものが。とりあえず、lispbox.batにemacs -rvで画面色を反転させてみる。
次に、clisp2.34はうちじゃ動いてくれなかったので、clisp2.35をダウンロードしてきて、アップデート。
で、slime1.2.1はダメっぽかったので、cvsからチェックアウト。
emacs/site-lispにある、lispbox.elを以下のように変更
;(lispbox-find-lisps)
(slime-register-lisp-implementation "clisp" "f:/lispbox/clisp/clisp.exe")
で動いた。
ついでに、以下を付け加えるのもよし。
(global-set-key [?\C-;] 'comment-region)
(global-set-key [?\C-:] 'uncomment-region)

結局、lispboxをそのまま使えるわけじゃなかった・・・。日本語を考えるとMeadowlisp用に軽量起動させるのがいいだろう。