紹介マニアMoinMoin

.scmで起動します。

;; パスの設定
(setq scheme-program-name "/usr/local/bin/gosh")
;; デフォルトのままだとだめです
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)

;; python-modeに似せています。C-c!で画面を分割し、分割画面にschmeインタプリタバッファを表示
;; かなりいいかげん
(defun my-scm-shell ()
  (interactive)
  (let ((win (selected-window))
        (tmpbuf " * temporary *"))
    (pop-to-buffer tmpbuf)
    (run-scheme scheme-program-name)
    (select-window win)
    ))

;; カッコの色の変更。この設定だと薄めの色になります
(defvar paren-face 'paren-face)
(make-face 'paren-face)
(set-face-background 'paren-face "black")
(set-face-foreground 'paren-face "gray50")

;; 定義をhookに設定して有効にします
(add-hook 'scheme-mode-hook
          (function
            (lambda ()
              (define-key scheme-mode-map "\C-c!" 'my-scm-shell)
              (setq scheme-font-lock-keywords-2
                    (append '(("(\\|)" . paren-face))
                            scheme-font-lock-keywords-2))
              )))

(setq cmuscheme-load-hook
      '((lambda () (define-key inferior-scheme-mode-map "\C-c\C-t"
     'favorite-cmd))))

C-x C-eで実行していきます。C-c!した後ならインタプリタのバッファに結果が表示されます。


CategoryEmacs Scheme

紹介マニアMoinMoin: scheme-mode (last edited 2010-02-21 00:09:12 by sakito)