Une douce tutoriel pour Emacs/Swank/Paredit pour Clojure
Je me déplace à Emacs de travailler sur Clojure/Lisp.
Qu'est-ce que toutes les informations dont j'ai besoin pour l'installation sur Emacs pour être en mesure de faire ce qui suit?
- automatique de correspondance/génération de crochets de clôture
- d'indentation automatique Lisp/Clojure style, pas du C++/Java style
- La coloration syntaxique
- Invoquant REPL
- Pour être en mesure de charger une partie de code à partir d'un fichier dans le REPL et de l'évaluer.
Ce serait génial si je pouvais obtenir la liste des commandes pour obtenir ces choses après le réglage de choses sur Emacs.
Vous devez vous connecter pour publier un commentaire.
[Modifier de non-auteur: c'est à partir de 2010, et le processus a été considérablement simplifiée depuis Mai 2011. Je vais ajouter un post pour cette réponse avec mes notes de configuration Février 2012.]
Vous aurez besoin de mettre ensemble quelques morceaux: Emacs, SLIME (qui fonctionne parfaitement bien avec Clojure -- voir swank-clojure), swank-clojure (le Clojure mise en œuvre de la vase du serveur de contrepartie), clojure-mode, Paredit et, bien sûr, la Clojure pot pour un début, alors peut-être que certaines options parmi lesquelles Leiningen serait peut-être la plus notable. Une fois que vous avez mis tout cela en place, vous aurez, dans Emacs-tous les flux /fonctions d'édition que vous mentionnez dans la question.
La configuration de base:
Suivantes sont à des didacticiels qui décrivent comment mettre tout cela en place; il n'y a plus sur le Web, mais d'autres sont tout à fait obsolète, alors que ces deux semblent être ok pour l'instant:
dans lequel se trouvent des astuces concernant clojure paternité post sur Phil Hagelberg blog; Phil maintient swank-clojure et clojure-mode, ainsi que d'un package appelé Emacs Kit de démarrage qui est quelque chose de tout nouveau venu à la Emacs monde serait bien avisé de regarder. Ces instructions semblent avoir été mis à jour avec les dernières modifications à l'infrastructure; en cas de doute, regardez pour plus d'informations sur Clojure du groupe Google.
La configuration de Clojure, Incanter, Emacs, Slime, Swank, et Paredit post sur le blog de l'Incanter projet. Incanter est un fascinant ensemble de la R-comme DSL pour des calculs statistiques intégrées à droite dans Clojure. Ce post vous sera utile même si vous ne prévoyez pas de l'utiliser, ou même de l'installation -- Incanter.
Mettre tous au travail:
Une fois que vous avez configuré toutes ces choses, vous pourriez essayer et commencer à l'utiliser tout de suite, mais je vous conseille fortement de faire ce qui suit:
Ont un coup d'oeil à SLIME manuel de l' -- il est inclus dans les sources et est en fait très lisible. Aussi, il n'y a absolument aucune raison pourquoi vous devriez lire l'ensemble de 50 pages, le manuel des monstres; il suffit de regarder autour de soi pour voir quelles sont les fonctionnalités disponibles.
Remarque: l'autodoc fonction de mucus comme dans les plus récents en amont des sources est incompatible avec swank-clojure -- ce problème ne sera pas trouvé si vous suivez Phil Hagelberg de la recommandation de l'utilisation de l'ELPA version (voir son blog précité pour une explication) ou tout simplement laisser autodoc off (qui est la valeur par défaut de l'état de choses). La dernière option est ajoutée d'appel que vous pouvez toujours utiliser la dernière SLIME avec Common Lisp, dans le cas où vous l'utiliser ainsi.
Ont un coup d'oeil à la doc de paredit. Il y a deux façons d'aller à ce sujet: (1) examiner la source -- il y a une énorme quantité de commentaires au début du fichier qui contiendra toutes les informations que vous êtes susceptible d'avoir besoin; (2) type C-h m Emacs tout paredit-mode est actif -- un tampon s'affiche avec des informations sur le mode majeur actuel de suivi par l'information sur tous les modes mineur (paredit est l'un de ceux-ci).
Mise à jour: je viens de trouver sympa cette série de notes sur Paredit par Phil Hagelberg... C'est un lien vers un fichier texte, je me souviens avoir vu une belle série de diapositives avec cette information quelque part, mais impossible de le trouver maintenant. De toute façon, c'est un bon résumé de la façon dont il fonctionne. Certainement prendre un coup d'oeil, je ne peux pas vivre sans Paredit maintenant et ce fichier, il est très facile de commencer à l'utiliser, je crois. 🙂
En fait, l' C-h m combinaison va vous parler de tous les raccourcis clavier active à la PITUITE, REPL, en clojure-mode (vous aurez envie de se rappeler C-c C-k pour envoyer le tampon courant hors de la compilation) et en effet, dans toute Emacs tampon.
Comme pour le chargement du code à partir d'un fichier, puis expérimenter avec elle à la REPL: ci C-c C-k combinaison de compiler le tampon courant, puis
use
ourequire
son espace de noms dans le REPL. Ensuite, d'expérimenter loin.Notes finales:
Être prêt à avoir à modifier les choses pour un certain temps avant de tous les clics. Il y a beaucoup d'outils impliqués et leurs interactions sont pour la plupart assez lisse, mais pas au point où il serait prudent de supposer que vous n'aurez pas à faire quelques ajustements au départ.
Enfin, voici un peu de code, je l'ai garder dans
.emacs
que vous ne trouverez pas ailleurs (même si c'est basé sur une fonction de refroidissement par Phil Hagelberg). J'alterne entre le point de départ de mon swank cas aveclein swank
(l'une des caractéristiques les plus froides de Leiningen) et à l'aide de laclojure-project
fonction comme constaté ci-dessous pour commencer le tout à partir de l'intérieur d'Emacs. J'ai fait de mon mieux pour rendre ce dernier de produire un environnement correspondant de près à celle fournie parlein swank
. Oh, et si vous voulez juste un REPL dans Emacs pour un accès rapide et sale expérience, puis avec l'installation correcte, vous devriez être en mesure d'utiliser M-x slime directement.Il y a un plus excellent tutoriel:
Dans les 30 à 45 minutes, on peut avoir tout le programme d'installation à partir de zéro.
Le tutoriel ne suppose aucune avant knowladge d'Emacs (et Clojure trop dans les précédents posts il y a une belle intro à Clojure).
La Emacs Starter kit a obtenu d'excellentes critiques pour la mise en route avec Clojure:
De ne répondre qu'à l'esbroufe partie de votre question:
Leiningen est vraiment un moyen facile de mise en place swank avec le bon chemin de classe et obtenir la connexion de Emacs.
Une grande vidéo est ici: http://vimeo.com/channels/fulldisclojure#8934942
Voici un exemple d'un projet.clj fichier
puis exécutez:
et de Emacs:
Clojure avec Emacs sur Clojure Documentation peut être utile aussi.