2010-11-27 12 views
11

¿Hay alguna manera de expandir el comando actual en Clojure repl como podría hacerlo en Common Lisp?Cómo hacer expansión automática o autocompletar funciones y variables en un Clojure repl

Por ejemplo decir que he escrito:

Math/ 

Me gustaría que la tecla de tabulación para ampliar a todas las variables y funciones disponibles en ese espacio de nombres.

Estoy usando Clojure como inferior-lisp me gustaría saber cómo hacer esto desde el simple vainilla repl en Clojure, y a través de la baba.

Respuesta

19

Otro voto a favor de clojure-mode y limo bajo Emacs. En particular, si configura auto-complete, puede usar mi paquete ac-slime para completar la pestaña contextual en una lista desplegable. Aquí hay un screencast showing it in action.

Y, además del comentario de technomancy sobre hippie-expand, here's how to tie slime completion into hippie-expand.

Actualización: a partir de 2012, nrepl, nrepl.el y ac-nrepl están reemplazando limo y AC-limo; misma funcionalidad, base de código más pequeña y limpia.

Update2: como de la OCT 2013 nrepl.el se cambia el nombre a cider y ac-nrepl y se han trasladado a la organización clojure-emacs en github. nrepl permanece como el componente del servidor

+0

Sigue siendo la forma más eficiente de usar el repl a mediados de 2012, ahora con Emacs24. –

3

¿Has probado modo Clojure para Emacs? Se ha completado automáticamente (las sugerencias se muestran en una ventana nueva, y si solo hay una opción posible, se usa para expandir el nombre), resaltando y muchas otras funciones agradables (no más para CL, pero tampoco menos).

Está disponible a través de ELPA. Después de installing ELPA escriba M-x package-list-packages, coloque el cursor cerca del paquete necesario y presione i (los paquetes ya instalados están en rojo). Necesitará los paquetes clojure-mode, slime, slime-repl y swank-clojure. Cuando haya terminado con i-marcas, presione x para completar la instalación. Finalmente, presione M-x slime - Emacs dirá que Clojure no está instalado y propone descargar y usar la última versión. Solo de acuerdo.

También puede integrate Emacs con Leiningen.

2

La réplica vainilla en Clojure está bastante lisiada; ni siquiera tiene historia. Evitarlo para cualquier cosa que no sea la más primitiva de las tareas. No creo que puedas obtener esto en inferior-lisp, pero en el limo repl puedes usar TAB para completar cosas como esta. En los búferes de modo clojure con baba activada, es M-TAB, o puede vincularlo a sus funciones hippie-expandir.

Cuestiones relacionadas