git clone https://github.com/cisco/ChezScheme.git cd ChezScheme ./configure make sudo make install
Plugin: geiser (setq geiser-active-implementations '(chez)) ;;; Otherwise, use C+c C+s to select M+x run-geiser Use C+x C+e to exec codes.
連接:https://gitlab.com/jaor/geisergit
參考王垠的配置:github
(autoload 'paredit-mode "paredit" "Minor mode for pseudo-structurally editing Lisp code." t) (require 'cmuscheme) (setq scheme-program-name "scheme") (defun scheme-proc () "Return the current Scheme process, starting one if necessary." (unless (and scheme-buffer (get-buffer scheme-buffer) (comint-check-proc scheme-buffer)) (save-window-excursion (run-scheme scheme-program-name))) (or (scheme-get-process) (error "No current process. See variable `scheme-buffer'"))) (defun scheme-split-window () (cond ((= 1 (count-windows)) (delete-other-windows) (split-window-vertically (floor (* 0.68 (window-height)))) (other-window 1) (switch-to-buffer "*scheme*") (other-window 1)) ((not (find "*scheme*" (mapcar (lambda (w) (buffer-name (window-buffer w))) (window-list)) :test 'equal)) (other-window 1) (switch-to-buffer "*scheme*") (other-window -1)))) (defun scheme-send-last-sexp-split-window () (interactive) (scheme-split-window) (scheme-send-last-sexp)) (defun scheme-send-definition-split-window () (interactive) (scheme-split-window) (scheme-send-definition)) (add-hook 'scheme-mode-hook (lambda () (paredit-mode 1) (define-key scheme-mode-map (kbd "<f5>") 'scheme-send-last-sexp-split-window) (define-key scheme-mode-map (kbd "<f6>") 'scheme-send-definition-split-window)))
具體paredit的快捷鍵經過which-key去查就好:編程
M+x which-key-show-keymap RET paredit-mode-map RET
我的更傾向於1.3的作法,HAHAHA......windows