Emacのスキームモードに余分な改行があるのはなぜですか?
質問
Emacs 23のスキームモードを使用してypsilonスキームを実行しています。インタプリタに式を入力すると、余分な改行が追加されます(以下を参照)。私はこれが他の通訳者で起こるのを見たことがない。イプシロンがシェルを shell-mode で見た目はきれいだからといって、イプシロンがそれを行っていないことは知っています(shell-modeは同じ間違った振る舞いを示します)。この余分な改行を追加するスキームまたはcomintモードの機能は何ですか?
このように見えます:
> (+ 1 2)
3
> ;; extra newline above
これになります:
> (+ 1 2)
3
> ;; no extra newline above
解決
わかりました。 comint-send-inputには、オプションのno-newlineパラメーターがあります。 Returnキーをcomint-send-inputをラップする新しい関数に再バインドして、これをtrueに設定します(別の改行を挿入しないでください)。これらの余分な改行は消えます。しかし、それらが最初に表示される理由はわかりません。
(defun comint-send-input-no-newline ()
(interactive)
(comint-send-input t nil))
他のヒント
これは他の何よりも回避策ですが、 SLIME を試してください。入出力を本当にうまく処理できることがわかりました。 SchemeをサポートするSLIMEバックエンドを見つけることができます。
所属していません StackOverflow