Pregunta

Estoy usando emacs con clojure-Swank y limo y tratando de establecer mi entorno de desarrollo. Y me encontré con un problema. Cuando comienzo un repl estoy atascado en un directorio desconocido impidiéndome cargar mi espacio de nombres. Debido a que el repl clojure no puede encontrar el archivo correcto.

¿Alguien sabe cómo cambiar el directorio actual?

PD: Acabo de comenzar a usar emacs y limo, así que estoy un novato.

¿Fue útil?

Solución

Si desea cambiar la noción de limo del directorio actual, pulse ,cd<CR> (<CR> = Enter) y escriba la ruta de acceso.

Sin embargo, esto no es realmente la solución adecuada al problema. La solución adecuada consiste en la creación de la ruta de clases, para que pueda (uso 'your.namespace). Con este fin, me pregunto si esta misma respuesta larga he proporcionado a una pregunta sobre la configuración de la ruta de clase adecuada podría ser útil ...: -)

Por cierto, me opongo a un tanto soluciones que implican add-classpath, ya que actualmente está marcado como obsoleto y no estaba destinado a ser invocada en el primer lugar ... Aunque, por otro lado, ciertamente puede funciona perfectamente bien y vale la pena saber acerca de si acaso podría ser útil como un truco de inyección de ruta de clases rápida y sucia.

Ahora, si quieres un entorno de desarrollo basado en BABA muy bonito, me gustaría apuntar a una muy buena función clojure-project elisp por Phil Hagelberg que establece todas las variables relevantes y lanza BABA en el directorio principal de un proyecto ( para ser suministrado de forma interactiva). Se ha publicado en el grupo Clojure, de hecho aquí hay un enlace para copia de ese mensaje del Archivo de correo. Tenga en cuenta que hay una cosa que necesita corrección ahí - swank-clojure-jar-path debe ser ajustado a la ruta completa a clojure.jar. Por lo demás es una herramienta fantástica.

En realidad he mencionado que la función de esta respuesta a una pregunta sobre el manejo de la ruta de clase cuando se utiliza Clojure y Emacs. Las otras respuestas podrían ser interesantes también.

Y si usted está recién comenzando a utilizar limo, no ver el video limo, vinculado a partir de página de inicio de BABA que ahora está disponible en un enlace publicado por Michiel en los comentarios. Es una muy buena introducción. : -)

Otros consejos

Leiningen es una nueva herramienta de construcción Clojure que se preocupa por classpathing para usted. Se configura un archivo de proyecto simple en el directorio raíz del proyecto para especificar la clase principal de su proyecto, y automágicamente descubre todos los frascos en su directorio lib y los carga para usted.

Ahora sólo tiene que escribir "Swank Lein" en una línea de comandos y luego M-x-limo conecto en Emacs, y todo funciona. (Esto podría ser fácilmente automatizado con un poco de Elisp.)

Más información en esta entrada de blog .

Respuesta corta:
(load-file "full-path-to-definition")

Respuesta larga: Esto es lo que mi proceso de arranque se ve así:

En ~ / .clojure / user.clj (este archivo es de ejecución automática cuando se arranca el limo / clojure):
(add-classpath "file://path/to/foo.jar") ; Include these jars in the classpath
(add-classpath "file://path/to/foo2.jar")
(load-file "file://workspace/bootstrap.clj")

En bootstrap.clj:
(compile 'my.package)

archivo (s) El paquete está en /workspace/my/package.clj

En package.clj:
(ns my.package)
(defn foo [] (+ 2 2))

El mejor método que he encontrado al usar Emacs, limo y Swank-clojure es utilizar el (Emacs Lisp) Función Swank-clojure-proyecto. Desde su documentación:

(Swank-clojure-proyecto PATH)

ruta de clase de configuración para un proyecto clojure e inicia una nueva sesión de baba.   Muertes sesión BABA existente, en su caso.

Si lo hace un "Swank-clojure-proyecto M-x", se le pedirá de forma interactiva el directorio del proyecto; Una vez que haya seleccionado, todos los frascos en un subdirectorio lib, así como la carpeta src y las clases serán añadidos a la ruta de clases. También cumplirá con una estructura de directorios Maven / Lein, en otras palabras: por lo general sólo el trabajo.

Si cambia algo, por ejemplo, añadir un nuevo archivo JAR, simplemente hacer Swank-clojure-proyecto de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top