Domanda

Ho provato più volte a migrare a Emacs per lo sviluppo di Clojure, seguendo una serie di post sul blog, screencast e tutorial, ma a un certo punto lungo il percorso qualcosa è sempre andato storto: combinazioni di tasti che non funzionavano, versioni incompatibili, ecc., e mi sono ritrovato tornando da Vim.Ma so che voglio Paredit e SLIME.

Quindi, ci riproverò, questa volta con il supporto della potente community Stack Overflow™.

Spero che la risposta a questa domanda rimanga aggiornata e possa servire da riferimento per i tentativi di conversione come me.

Quello che vorrei è:

  • L'ultima versione stabile di Clojure
  • Aquamacs (se va bene per Rich Hickey, va bene anche per me), una versione recente
  • Modalità Clojure
  • SLIME/SWANK
  • Paredit
  • C'è qualcos'altro che è indispensabile?

Le istruzioni dettagliate per installare quanto sopra sarebbero eccellenti, preferibilmente in formato script di shell.Vorrei anche alcuni suggerimenti su come iniziare con le azioni più comuni relative a Clojure (incluse le associazioni di tasti), inclusi collegamenti alla documentazione e ai cheatsheet.

È stato utile?

Soluzione

Questi sono i passi che ho preso per configurarli senza usare ELPA. Spero che questo aiuti.

Get SLIME utilizzando MacPorts

sudo port -v install slime

Get paredit

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

Get clojure & clojure-contrib

  • sia utilizzando MacPorts
sudo port -v install clojure clojure-contrib
  • o scaricando direttamente
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 e Swank-clojure (lato Emacs)

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

Get Swank-clojure (lato Clojure)

  • scaricando del pre-costruito file jar
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
  • o di un edificio dalla sorgente (è installato Lein assumendo)
cd path/to/dir/swank-clojure
lein jar

clojure Put, clojure-contrib e .jar Swank-Clojure in ~ / .swank-clojure o ~ / .clojure (i luoghi di default in cui le ricerche Swank-clojure.el per loro).


Aggiungi a entrambi ~ / .emacs o ~ / Library / Preferences / Aquamacs Emacs / customization.el (percorsi di cambiamento per soddisfare le proprie impostazioni)

(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/*")))

Altri suggerimenti

Scaricare e installare Aquamacs.

Scaricare e installare ELPA ( http://tromey.com/elpa/install.html)

Do M-x Pacco-list-pacchetti

Seleziona le linee chiamate "clojure-mode" e "Swank-clojure" con "I", quindi premere "X".

Fatto.

Sembra che ci sia un modo abbastanza facile da configurare Aquamacs 2.4 e SLIME per clojure:

  1. Installa Clojure
  2. Installa Aquamacs 2.4 da qui "http://aquamacs.org/"
  3. Installare il pacchetto Aquamacs SLIME da qui "http://aquamacs.org/download.shtml"

Questo non funzionerà in modo ...

  1. Scarica l'ultima versione di melma da qui "http://common-lisp.net/project/slime/#downloading" - si desidera che il file CVS snapshot tar
  2. Estrarre il file tar SLIME e copiarlo nella / Library / Application Support / Aquamacs Emacs / SLIME

Sembra funzionare bene per me ...

So che il PO vuole usare Emacs per Clojure dev. Sono un fan di emacs me stesso, ma ho trovato usando Enclojure ( http://www.enclojure.org/home ) per essere un ottimo modo per iniziare rapidamente con l'hacking Clojure.

Oggi mi dirigerei verso https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network

questo è per Ruby e all'inizio non funzionerà, ma comunque.git clone e copia le cose su Preferences.el secondo readme.Correggi il problema modificando ~/Library/Preferences/Aquamacs Emacs/ e commentando quasi tutto in modes.el (mi è rimasto solo (setq-default indent-tabs-mode nil) nel file)

La parte buona:hai installato elpa-package-manager con meno problemi

Ora:utilizzo

M-x package-list-packages

vai a

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

Press X to install

Fatto.

Avvertimento:clojure-jack-in non funzionerà, quindi devi farlo

M-x slime-connect

e premi Invio due volte e y per iniziare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top