2017-05-24 6 views
2

나는 inferior lisp mode을 사용하여 Clojure로 작업하려고한다. 내 설정 :열등한 REPL에서 Clojure 버퍼를 평가할 수 없다

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

내가 lisp-eval-region를 사용하여 짧은 형태를 평가하는 경우, 오류가 없습니다.

  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에서 커서가 잠시 후 첫 번째 점프로 점프한다는 점에 주목하십시오. 이것이 그 이스케이프 코드입니다.

당신이 맞다면이 작동해야합니다. Rich Hickey는 오랫동안 그것을 사용 했었습니다. 어쩌면 여전히 그랬을 것입니다. 후자가 실제로 상대방의 실제 터미널을 기대하기 때문에 Leiningen 's 대신 Clojure REPL을 사용하여 일반 Clojure REPL을 사용하려고합니다.

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

은 또한 그것은 INF-LISP를 매우 유사하지만 Clojure의와 함께 사용하기에 더 적합한, inf-clojure을 사용하는 것이 좋습니다.

+0

감사합니다. 그렇다면 네이티브 REPL을 시도해보십시오. –

+0

오늘 Clojure REPL을 정말 시험해 보았습니다. 정말 감사합니다. –