2011-05-13 9 views
9

Clojure 및 Common Lisp와 함께 작동하도록 SLIME을 설정하는 데 어려움을 겪고 있습니다. 대부분의 Clojure 개발자는 Clojure 호환성을 위해 고정 된 ELPA를 통해 제공되는 스트립 된 SLIME을 사용하는 경향이 있습니다. 그러나 Common Lisp 해킹을 많이 수행하며 일반적으로 SLIME CVS 버전 (QuickLisp을 통해 획득)을 사용합니다.Common Lisp 및 Clojure 개발을위한 SLIME 설정

Clojure의 구현에 대한 몇 가지 잘 알려진 문제점이 있습니다. autodoc (SLIME가 작동 가능한 경우)이 작동하지 않으며 퍼지 완료 등과 같은 일부 기능을 지원하지 않습니다. question은 그 대답은 나에게 아무런 의미가 없다고 제안했던 것과 같은 주제입니다.

(add-hook 'slime-connected-hook 
      (lambda() 
      (if (string= (slime-lisp-implementation-type) "Clojure") 
       (setq slime-use-autodoc-mode nil) 
       (setq slime-use-autodoc-mode t)) 
      )) 

(add-hook 'slime-mode-hook 
      (lambda() 
      (if (eq major-mode 'clojure-mode) 
        (slime-autodoc-mode 0) 
       (slime-autodoc-mode 1)))) 

(add-hook 'slime-repl-mode-hook 
      (lambda() 
      (if (string= (slime-lisp-implementation-type) "Clojure") 
       (progn (setq slime-use-autodoc-mode nil) 
         (slime-autodoc-mode 0)) 
       (progn (setq slime-use-autodoc-mode t) 
        (slime-autodoc-mode 1))))) 

해결책은 용지에서 잘 보이지만 나를 위해 slime-lisp-implementation-type은 항상 nil입니다. (slime-lisp-implementation-type과 동일 : 로컬 연결로 connlocal).

기본적으로 필요한 것은 문제가되는 설정을 수정할 수 있도록 Clojure의 스웽크를 사용하여 실 타임을 실행하는 것입니다.

+0

어떤 OS가 당신을에 있습니까? 나는 맥 오에스 텐에서 작동하고있다. (아마 리눅스에서도 가능할 것이다.) http://spacemanaki.posterous.com/setting-up-emacs-for-lisp-hacking-on-os-x- pt-0 및이 질문에 답변했습니다. http://stackoverflow.com/questions/4551283/what-is-wrong-with-my-emacs-slime-setup-compile-and-load-eval-not-working/4555421#4555421 내가 작동하도록 할 수있는 유일한 방법은 최신 CVS SLIME과 ELPA SLIME을 모두 가지고 Common Lisp 또는 Clojure에서 작업하는지 여부에 따라 적절한 방법을로드하는 것입니다. – spacemanaki

+1

리눅스를 사용하고 있습니다. 나는 당신이 제안한 해결책을 알고 있지만, 나는 그것을 좋아하지 않는다. 나는 CVS SLIME을 항상 사용하고 싶다. 나는 clojure 연결을 만들기 전에 필요한 것을 토글하는 간단한 함수를 가질 수 있지만, 나는 slime의 시작에 자동으로 그러한 설정을 연결하는 방법을 찾고 싶습니다. –

+0

나는 그것도 좋아하지 않지만 그것이 효과가있다. 나는 누군가가 더 나은 것을 제안하는지보기 위해이 실을 계속 주시 할 것입니다. 지금은이 야크를 면도했습니다. – spacemanaki

답변

4

이 문제에 대한 해결책이 막 생성 된 것 같습니다. jack-in이라고합니다. 기본적으로 당신은 단지 세 가지를 수행해야합니다

  • lein 플러그인 설치 자식이나 마멀레이드를 통해

    1. Clojure의 모드 설치를 허풍-Clojure의 1.3.1
    2. 호출 MX의 Clojure의 잭-에서 프로젝트에서

    지원되는 SLIME이 자동으로 부트 스트랩됩니다. 더 이상 ELPA를 통해 설치할 필요가 없습니다. Clojure SLIME을 로딩하면 자연스럽게 몇 가지 설정이 망가지기 때문에 필자는 필요할 때 호출 할 수있는 대화 형 함수로 Common Lisp init을 래핑했습니다. ... 그것은 점액 상류 Clojure에 지원 한 이상적인 해결책은 아니지만, 대부분의 대안보다 훨씬 낫다

    업데이트 :

    점액이 더 이상 Clojure의 개발이 필요하다. 대신 CIDER을 사용하시기 바랍니다.

  • 관련 문제