2010-01-22 8 views
31

J'ai essayé de migrer plusieurs fois vers Emacs pour le développement de Clojure, suite à une variété de blogposts, de screencast et de tutoriels, mais quelque chose s'est toujours mal passé - claviers qui ne fonctionnaient pas, versions incompatibles, etc. Je me suis retrouvé à retourner à Vim. Mais je sais que je veux Paredit et SLIME. Donc, je vais essayer à nouveau, cette fois soutenu par la puissante communauté StackOverflow ™.Comment configurer Aquamacs pour le développement de Clojure?

J'espère que la réponse à cette question restera à jour, et peut servir de référence pour des convertis provisoires comme moi.

Ce que je voudrais est: - La dernière version stable de Clojure - Aquamacs (si elle est assez bon pour Rich Hickey, il est assez bon pour moi), une version récente - Mode de Clojure - BOUE/SWANK - Paredit - Autre chose indispensable?

Les instructions étape par étape pour installer ce qui précède seraient excellentes - de préférence dans un format de script shell. Je voudrais aussi quelques conseils sur la façon de commencer avec les actions les plus courantes liées à Clojure (y compris les raccourcis clavier), y compris les liens vers la documentation et les cheatsheets.

+0

Mes premiers pas: téléchargé et installé Aquamacs 1.9. git clone git: //github.com/jochu/clojure-mode.git Fichier .emacs fait dans le répertoire homedir avec le contenu: (add-to-list 'load-path' ~/git/clojure-mode ") Lancé Aquamacs, fait mx clojure-install, qui a procédé à l'installation de clojure, clojure-contrib, mais a donné une erreur lors de l'installation de Swank. (nécessite 'clojure-mode) –

+0

Apparemment, c'était la mauvaise version de clojure-mode. J'ai essayé git: //github.com/technomancy/clojure-mode.git à la place. Est-ce que m-x clojure-install, qui a dit que cette fonction était déconseillée en faveur de swank-clojure. Aucune idée de comment l'installer. –

+0

Paredit est installé, mais ne fait rien. Pourquoi pas? –

Répondre

7

Voici les étapes que j'ai suivies pour les configurer sans utiliser ELPA. J'espère que cela t'aides.

Obtenez SLIME en utilisant MacPorts

sudo port -v install slime 

Get paredit

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

Get Clojure & clojure-contrib

  • soit en utilisant MacPorts
sudo port -v install clojure clojure-contrib
  • Ou télécharger directement
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 et Swank-clojure (côté Emacs)

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

Get Swank-clojure (côté Clojure)

  • Soit le téléchargement du fichier jar préconstruit
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
  • ou la construction de la source (en supposant lein est installé)
cd path/to/dir/swank-clojure 
lein jar

Put Clojure, Clojure-contrib et Swank-clojure fichiers .jar dans ~/.swank-clojure ou ~/.clojure (les emplacements par défaut où swank-clojure.el les recherche).


Ajouter soit à ~/emacs ou ~/Library/Preferences/Aquamacs Emacs/customization.el (chemins de changement en fonction de vos propres paramètres)

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

Merci pour votre réponse élaborée - Je vais essayer ce soir. Avez-vous une alternative à l'installation de SLIME avec MacPorts? Je vise à avoir un ensemble minimal de dépendances. –

+0

Vous pouvez le télécharger sur http://common-lisp.net/project/slime/snapshots/slime-current.tgz ou utiliser CVS pour cloner le repo: cvs -d: pserver: anonyme: [email protected] :/project/slime/cvsroot co slime – ubolonton

5

Télécharger et installer Aquamacs.

Téléchargez et installez ELPA (http://tromey.com/elpa/install.html)

Do Mx package-list-packages

Marquez les lignes appelées "clojure-mode" et "Swank-clojure" avec "I" puis appuyez sur "X" .

Terminé.

+0

Il n'y a pas d'instructions pour installer ELPA sur Aquamacs, et les instructions pour Emacs 22 ne fonctionnent pas. –

+1

Ne fonctionne pas de quelle façon? obtenez-vous un message d'erreur. Oh - vous exécutez en plaçant le curseur à droite du dernier paren et appuyez sur C-x-e. – mac

+0

La documentation ELPA dit C-j, mais C-x-e (c'est C-x C-e) fonctionne. Eh bien, il a donné une erreur http la première fois, mais la deuxième fois a montré la liste des paquets. J'ai également sélectionné les paquets slime, et slime-repl, en pressant 'i', pas 'I'. Appuyer sur 'x' a commencé la compilation, ce qui m'a donné un tas d'avertissements et une erreur (dans slime-repl), heureusement pas mortel. –

5
+1

Le blog est une version plus détaillée de ma réponse ci-dessus. Il explique également les versions btw diffs d'Emacs pour OSX. Bonne trouvaille! – mac

+0

Grand article - dommage qu'il a utilisé Maven. J'ai attrapé une allergie virulente à maven vers 2004 ou alors - apparemment ça va mieux mais je voudrais m'en passer quand même. –

0

Je sais l'OP veut utiliser Emacs pour Clojure dev. Je suis moi-même un fan d'emacs, mais j'ai trouvé que l'utilisation d'Enclojure (http://www.enclojure.org/home) était une excellente façon de commencer rapidement avec le piratage de Clojure.

+1

Merci pour le conseil, je suis conscient qu'il existe de bonnes alternatives, mais ce fil est vraiment pour les conseils Aquamacs - même Carbon Emacs est hors sujet. –

0

Aujourd'hui, je la tête pour https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network

c'est pour ruby ​​et ne fonctionnera pas au début mais de toute façon. git clone et copie les choses dans Preferences.el selon readme. Corriger le brisement en éditant le ~/Library/Preferences/Aquamacs Emacs/et commenter presque tout dans modes.el (je n'ai que (setq-default indent-tabs-mode nil) à gauche dans le fichier)

Le bon partie: vous avez installé ELPA-package-manager avec moins de tracas

maintenant: utilisez

M-x package-list-packages 

aller à

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

Press X to install 

fait.

caveat: clojure-jack-in ne fonctionnera pas si vous devez

M-x slime-connect 

et appuyez sur Entrée deux fois et y commencer.

1

Il semble y avoir un moyen assez facile à mettre en place Aquamacs 2.4 et SLIME pour clojure:

  1. Installer Clojure
  2. Installer Aquamacs 2.4 d'ici "http://aquamacs.org/"
  3. Installez le package Aquamacs BOUE d'ici "http://aquamacs.org/download.shtml"

Ce ne fonctionnera pas si ...

  1. obtenir la dernière version de BOUE d'ici « http://common-lisp.net/project/slime/#downloading » - vous voulez que le fichier tar instantané CVS
  2. Décompressez le fichier tar SLIME et copiez dans /Bibliothèque/application support/Aquamacs Emacs/BOUE

Cela semble ok pour moi ...

Questions connexes