Pregunta

He intentado migrar a Emacs varias veces para el desarrollo Clojure, a raíz de una variedad de entradas del blog, screencast y tutoriales, pero en algún lugar a lo largo del camino siempre hay algo que salió mal - combinaciones de teclas que no funcionó, versiones incompatibles, etc, y me encontré luchando de nuevo a Vim. Pero sé que quiero Paredit y el asfalto.

Por lo tanto, voy a intentarlo de nuevo, esta vez con el respaldo de la poderosa comunidad de desbordamiento de pila ™.

Espero que la respuesta a esta pregunta se mantendrá hasta a la fecha, y puede servir como una referencia para los convertidos tentativos como yo.

Lo que me gustaría es:

  • La última versión estable de Clojure
  • Aquamacs (si es lo suficientemente bueno para Rich Hickey, que es lo suficientemente bueno para mí), una versión reciente
  • Modo Clojure
  • BABA / Swank
  • Paredit
  • Cualquier otra cosa que es indispensable?

Paso a paso instrucciones para instalar lo anterior serían excelentes - preferentemente en formato secuencia de comandos shell. También me gustaría algunos consejos sobre cómo empezar a trabajar con la mayoría de las acciones comunes de Clojure relacionada (incluyendo atajos de teclado), incluyendo enlaces a la documentación y Cheatsheets.

¿Fue útil?

Solución

Estos son los pasos que tomó para ponerlos en marcha sin necesidad de utilizar ELPA. Espero que esto ayude.

Obtener BABA usando MacPorts

sudo port -v install slime

Get paredit

curl -O http://mumble.net/~campbell/emacs/paredit.el

Get clojure y clojure-contrib

  • ya sea usando MacPorts
sudo port -v install clojure clojure-contrib
  • o descargar directamente
curl -O http://build.clojure.org/snapshots/org/clojure/clojure/1.1.0-master-SNAPSHOT/clojure-1.1.0-master-20091202.150145-1.jar
curl -O http://build.clojure.org/snapshots/org/clojure/clojure-contrib/1.1.0-master-SNAPSHOT/clojure-contrib-1.1.0-master-20091212.205045-1.jar

Get clojure-mode y Swank-clojure (lado Emacs)

git clone http://github.com/technomancy/clojure-mode.git
git clone http://github.com/technomancy/swank-clojure.git

Get Swank-clojure (lado Clojure)

  • O bien descargar el archivo jar pre-construidos
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
  • o la construcción de la fuente (suponiendo Lein está instalado)
cd path/to/dir/swank-clojure
lein jar

clojure Put, clojure-contrib y Swank-clojure archivos .jar en ~ / .swank-clojure o ~ / .clojure (los lugares donde las búsquedas por defecto Swank-clojure.el para ellos).


Añadir a cualquiera de ~ / .emacs o ~ / Library / Preferences / Aquamacs Emacs / customization.el (caminos cambian para coincidir con su propia configuración)

(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/")
(add-to-list 'load-path "/opt/local/share/emacs/site-lisp/slime/contrib/")
;; Change these paths to match your settings
(add-to-list 'load-path "path/to/dir/clojure-mode/")
(add-to-list 'load-path "path/to/dir/swank-clojure/")
(add-to-list 'load-path "path/to/dir/paredit/")

;; Customize swank-clojure start-up to reflect possible classpath changes
;; M-x ielm `slime-lisp-implementations RET or see `swank-clojure.el' for more info 
(defadvice slime-read-interactive-args (before add-clojure)
(require 'assoc)
(aput 'slime-lisp-implementations 'clojure
(list (swank-clojure-cmd) :init 'swank-clojure-init)))

(require 'slime)
(require 'paredit)
(require 'clojure-mode)
(require 'swank-clojure)

(eval-after-load "slime"
  '(progn
    ;; "Extra" features (contrib)
    (slime-setup 
     '(slime-repl slime-banner slime-highlight-edits slime-fuzzy))
    (setq 
     ;; Use UTF-8 coding
     slime-net-coding-system 'utf-8-unix
     ;; Use fuzzy completion (M-Tab)
     slime-complete-symbol-function 'slime-fuzzy-complete-symbol)
    ;; Use parentheses editting mode paredit
    (defun paredit-mode-enable () (paredit-mode 1))
    (add-hook 'slime-mode-hook 'paredit-mode-enable)
    (add-hook 'slime-repl-mode-hook 'paredit-mode-enable)))

;; By default inputs and results have the same color
;; Customize result color to differentiate them
;; Look for `defface' in `slime-repl.el' if you want to further customize
(custom-set-faces
 '(slime-repl-result-face ((t (:foreground "LightGreen")))))

(eval-after-load "swank-clojure"
  '(progn
    ;; Make REPL more friendly to Clojure (ELPA does not include this?)
    ;; The function is defined in swank-clojure.el but not used?!?
    (add-hook 'slime-repl-mode-hook
      'swank-clojure-slime-repl-modify-syntax t)
    ;; Add classpath for Incanter (just an example)
    ;; The preferred way to set classpath is to use swank-clojure-project
    (add-to-list 'swank-clojure-classpath 
"path/to/incanter/modules/incanter-app/target/*")))

Otros consejos

Descargar e instalar Aquamacs.

Descargar e instalar el ELPA ( http://tromey.com/elpa/install.html)

Do package-list-paquetes M-x

Marcar las líneas llamadas "clojure-mode" y "Swank-clojure" con "I" y después pulse "X".

Hecho.

Aquí hay una entrada de blog que menciona Aquamacs: Configuración de Clojure, embrujamiento, Emacs , limo, Swank, y Paredit

Parece que hay una manera bastante fácil de configurar Aquamacs 2.4 y el asfalto para clojure:

  1. Instalar Clojure
  2. Instalar Aquamacs 2.4 de aquí "http://aquamacs.org/"
  3. Instalar el paquete Aquamacs BABA de aquí "http://aquamacs.org/download.shtml"

Este no funcionará así que ...

  1. Obtener la última versión de baba de aquí "http://common-lisp.net/project/slime/#downloading" - desea que el archivo CVS instantánea alquitrán
  2. Desempaquetar el archivo tar BABA y copiarlo en / Library / Application Support / Aquamacs Emacs / BABA

Parece OK trabajo para mí ...

Sé que el PO quiere usar Emacs para Clojure prog. Soy un ventilador de emacs, pero me encontré usando Enclojure ( http://www.enclojure.org/home ) para ser una gran manera de empezar a trabajar rápidamente con la piratería Clojure.

Hoy me gustaría ir para https://github.com/tehcurtis/aquamacs -emacs-starter-kit / red

esto es para rubí y no funcionará al principio, pero de todos modos. git clone y copiar cosas que Preferences.el acuerdo con readme. Fijar el quebrantamiento de editar el archivo ~ / Library / Preferences / Aquamacs Emacs / y comentar casi todo en modes.el (sólo tengo (nula setq-default indent-tabs-mode) que queda en el archivo)

La parte buena: se han instalado elpa-paquete-manager con menos complicaciones

Ahora: uso

M-x package-list-packages

vaya a

clojure-mode   (press I)
slime          (press I)
slime-repl     (press I)

Press X to install

hecho.

Advertencia: clojure-muñeco de costumbre trabajo por lo que tiene que

M-x slime-connect

y pulse Enter dos veces e Y para empezar.

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