¿Cómo puedo configurar Aquamacs para el desarrollo Clojure?
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.
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:
- Instalar Clojure
- Instalar Aquamacs 2.4 de aquí "http://aquamacs.org/"
- Instalar el paquete Aquamacs BABA de aquí "http://aquamacs.org/download.shtml"
Este no funcionará así que ...
- 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
- 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.