2010-11-27 2 views
11

Common Lisp에서 할 수있는 것처럼 Clojure repl에서 현재 명령을 확장하는 방법이 있습니까? 예를 들어Clojure repl에서 함수 및 변수의 자동 확장 또는 자동 완성하는 방법

는 내가 입력 한 말 :

Math/ 

내가 탭 키를 해당 네임 스페이스에서 사용할 수있는 모든 변수와 함수로 확장하고 싶습니다.

나는 Clojure를 Clojure의 평범한 바닐라 repl에서 그리고 swank slime을 통해 이것을 수행하는 방법을 알고 싶다는 이유로 Clojure를 사용하고 있습니다.

답변

19

이맥스에서 clojure-mode와 slime을지지하는 또 다른 투표. 특히 auto-complete을 설정하면 내 ac-slime 패키지를 사용하여 드롭 다운 목록에서 컨텍스트 인식 탭 완성을 얻을 수 있습니다. 여기에 screencast showing it in action이 있습니다.

히피에 대한 technomancy의 덧글에 덧붙여, here's how to tie slime completion into hippie-expand.

업데이트 : 2012 년 현재 nrepl, nrepl.elac-nrepl은 점액 및 점액을 대체합니다. 동일한 기능, 작고 깨끗한 코드베이스.

갱신 2 : nrepl.elcider로 이름이 변경되고 그와 ac-nrepl는 GitHub의에 clojure-emacs 조직으로 이동 한 년 10 월 2013. nrepl은 서버 구성 요소로 유지됩니다.

+0

2012 년 중반, 지금은 Emacs24에서 repl를 사용하는 가장 효율적인 방법입니다. –

3

시도해 보셨습니까? Emacs 용 Clojure 모드? 자동 완성 기능 (새 창에 제안 사항이 표시되며 가능한 옵션이 하나 뿐인 경우 이름을 확장하는 데 사용됩니다), 강조 표시 및 기타 여러 가지 유용한 기능 (CL은 아니지만 그 이상은 아닙니다)이 있습니다.

ELPA을 통해 사용할 수 있습니다. installing ELPAM-x package-list-packages 유형 뒤에 커서를 필요한 패키지 근처에 설정하고 i (이미 설치된 패키지는 빨간색으로 표시됨)을 누르십시오. 패키지 clojure-mode, slime, slime-replswank-clojure이 필요합니다. i -marks가 끝나면 x을 눌러 설치를 완료하십시오. 마지막으로, M-x slime을 누름 - Emacs는 Clojure가 설치되어 있지 않으며 최신 버전을 다운로드하여 사용하라는 메시지를 표시합니다. 그냥 동의 해.

integrate 이멕스 Leiningen으로 지정할 수도 있습니다.

2

Clojure의 바닐라 repl은 꽤 불구가됩니다; 그것은 역사조차 가지고 있지 않습니다. 가장 원시적 인 작업을 제외하고는 아무 것도하지 마십시오. 난 당신이 열등한 - lisp에서 이것을 얻을 수 있다고 생각하지 않지만 슬라임 repl에서 그냥 이런 일을 완료하기 위해 탭을 사용할 수 있습니다. 슬라임 활성화 된 clojure-mode 버퍼에서는 M-TAB이거나 히피 확장 기능에 묶을 수 있습니다.