我在〜/ .emacs中有以下代码用于运行scheme(gosh和mit-scheme)。
;(setq scheme-program-name "gosh -i")
(setq scheme-program-name "mit-scheme")
(autoload 'scheme-mode "cmuscheme" "Major mode for scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior scheme process." t)
(defun scheme-other-window ()
"Run scheme on other window"
(interactive)
(switch-to-buffer-other-window
(get-buffer-create "*scheme*"))
(run-scheme scheme-program-name))
(define-key global-map
"\C-cs" 'scheme-other-window)
C-c以“scheme-program-name”指定的REPL方式启动方案,并通过注释掉其中一个来选择要使用的方案。
有比这更好的方法吗?我的意思是,我可以选择使用“M-x”或其他什么方案吗?
答案 0 :(得分:5)
如果您使用前缀参数调用run-scheme
,它会询问您要运行哪个方案 - 您可以通过运行
(let ((current-prefix-arg 1)) (call-interactively 'run-scheme))
答案 1 :(得分:2)
quack.el可能是更好的解决方案,但如果你想继续使用run-scheme,这个版本的功能包括Eli的建议并且确实有效。
(defun scheme-other-window ()
"Run scheme on another window"
(interactive)
(switch-to-buffer-other-window
(get-buffer-create "*scheme*"))
;; This causes run-scheme to act as if C-u had been entered before it was called.
(let ((current-prefix-arg 1))
(call-interactively 'run-scheme)))
答案 2 :(得分:1)
看看quack.el-它有一个更好的Scheme模式,并查询你想要运行的Scheme。