如何选择用于emacs的方案?

时间:2010-08-24 15:58:41

标签: emacs scheme

我在〜/ .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”或其他什么方案吗?

3 个答案:

答案 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。