2017-05-24 13 views
2

私はinferior lisp modeを使用してClojureで作業しようとしています。私のセットアップ:下位のREPLでClojureバッファを評価できません

(setq inferior-lisp-program "lein repl") 
(run-lisp) ;; Clojure REPL appears then... 

ショートフォームをlisp-eval-regionで評価したところ、間違いはありません。しかし、私は長い領域、あるいはバッファ全体をevalにしようとすると、私は以下の奇妙な行動に直面します。

  1. REPLバッファに送信され、入力されたテキストは、ごみのシンボルがいっぱいです: (doseq [addr addresses][53G[38G[54G

  2. 不明な理由により、一部のシンボルが切り取られているため、見つからない場合があります。 (u/validat (:entity_id obj)[61G[46G[62Gコード内には、(u/validate-access!があります。

さらに包括的なダンプis here

ps:私は長い間サイダーと一緒に作業してきましたが、そこには何か選択肢があるのだろうかと思っています。

+0

私はclojure replがそれと互換性があるとは思わない。なぜサイダーを使用しないのですか? –

+0

下位リプスモードは、そのSTDIN上で動作するので、どのREPLとも互換性があります。 –

答えて

1

「ゴミの記号」は、特定の列にカーソルを置くためのANSI escape codesです。あなたのREPLプロセスがこれらを出力しており、Emacsのプロセスバッファはそれらを処理する方法を知らない。

lein replに、閉じ括弧を入力すると、カーソルが一時的にオープニングにジャンプすることに注意してください。これがそのエスケープコードです。

あなたは、inf-lispがうまくいくはずですが、Rich Hickeyはそれを長い間使用していました。後者が実際に相手側のターミナルを期待しているので、私はライニンゲンの代わりにClojure REPLのプレーン組み込みでそれを使用しようとします。

(setq inferior-lisp-program "lein run -m clojure.main") 

またinf-clojureの使用を検討し、それはINF-lispのに非常によく似ていますが、Clojureのの使用に適しています。

+0

ありがとう、あなたはネイティブREPLを試みます。 –

+0

私は今日、ネイティブClojure REPL本当にwoks、それをもう一度ありがとう! –

関連する問題