如何在 emacs 中添加缩进劣质方案(REPL)?

How to add indentation an inferior scheme (REPL) in emacs?

我正在使用 Chicken-scheme.I 使用 M-x run-scheme 启动方案 repl,然后我使用 C-c C-l 之类的东西来测试我的工作。

然而,这是缩进的噩梦。事情通常是这样的:

> (+ 1 
(* 2
3)
4)

而不是所需的:

> (+ 1
     (* 2
        3)
     4)

我怎样才能轻松解决这个问题?我知道我可以用 geiser 开始做鸡 repl,但这会破坏键绑定,我真的只是不想让事情变得比现在更复杂。我只是希望它在我按下回车键时正确缩进,就像在我的 non-repl 缓冲区中一样,仅此而已。

我只想要最简单的解决方案来获得一些漂亮的缩进,就像 lisp 的标准一样。我想补充一点,我在其中编辑文件的缓冲区完全没问题,只是 repl 不起作用。

RET 绑定到

(defun comint-send-input-indent ()
  (interactive)
  (let ((parens (or (car (syntax-ppss)) 0)))
    (if (zerop parens)
        (comint-send-input)
      (newline-and-indent))))

已找到 here