Frage

Ich habe für Clojure Entwicklung mehrmals zu Emacs zu migrieren versucht, nach einer Vielzahl von Blogeinträgen, Screencasts und Tutorials, aber irgendwo auf dem Weg immer etwas schief gelaufen ist - keybindings, die nicht arbeiten, inkompatible Versionen taten, etc, und ich fand mich zu Vim kriechen zurück. Aber ich weiß, ich will Paredit und SLIME.

Also, ich werde wieder versuchen, diesmal von der mächtigen Community ™ Stack-Überlauf gesichert.

Ich hoffe, dass die Antwort auf diese Frage wird bleiben up-to-date und kann als Referenz für die vorläufige Konvertiten wie ich dienen.

Was ich möchte, ist:

  • Die letzte stabile Version von Clojure
  • Aquamacs (wenn es für Rich Hickey gut genug ist, ist es gut genug für mich), eine aktuelle Version
  • Clojure-Modus
  • SLIME / SWANK
  • Paredit
  • Alles andere, das ist unverzichtbar?

Schritt-für-Schritt-Anweisungen die oben zu installieren wären ausgezeichnet - vorzugsweise in Shell-Script-Format. Ich möchte auch einige Hinweise, wie mit den häufigsten Clojure bezogenen Aktionen, um loszulegen (einschließlich Schlüssel-Bindungen), einschließlich Links zu Dokumentation und cheatsheets.

War es hilfreich?

Lösung

Dies sind die Schritte, die ich ihnen ohne ELPA bis zu setzen hat. Hoffe, das hilft.

Get SLIME mit MacPorts

sudo port -v install slime

Get paredit

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

Get clojure & Clojure-contrib

  • Entweder mit MacPorts
sudo port -v install clojure clojure-contrib
  • oder das Herunterladen von direkt
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-Modus und Protz-clojure (Emacs Seite)

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

Get Swank-clojure (Clojure Seite)

  • Entweder Download vorgefertigte JAR-Datei
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
  • oder Gebäude von der Quelle (unter der Annahme lein installiert ist)
cd path/to/dir/swank-clojure
lein jar

Put clojure, Clojure-contrib und Protz-clojure .jar-Dateien in ~ / .swank-clojure oder ~ / .clojure (der Standard Orte, an denen Swank-clojure.el sucht nach ihnen).


Hinzufügen entweder ~ / .emacs oder ~ / Library / Preferences / Aquamacs Emacs / customization.el (ändern Pfade Ihre eigenen Einstellungen übereinstimmen)

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

Andere Tipps

Herunterladen und Installieren von Aquamacs.

Herunterladen und Installieren von ELPA ( http://tromey.com/elpa/install.html)

Do M-x-Paket-list-Pakete

Markieren Sie die Zeilen als "clojure-Modus" und "Protz-clojure" mit "I" und drücken Sie "X".

Fertig.

Hier ist ein Blog-Post, die Aquamacs erwähnt: Einrichten von Clojure, Incanter, Emacs , Slime, Swank und Paredit

Es scheint eine ziemlich einfache Art und Weise zu sein einzurichten Aquamacs 2.4 und SLIME für clojure:

  1. Installieren Clojure
  2. Installieren Aquamacs 2.4 von hier "http://aquamacs.org/"
  3. Installieren Sie das Aquamacs SLIME Paket von hier "http://aquamacs.org/download.shtml"

Das wird nicht funktionieren so ...

  1. Laden Sie die neueste Version von SLIME von hier "http://common-lisp.net/project/slime/#downloading" - Sie wollen, dass die CVS-Snapshot TAR-Datei
  2. auspacken SLIME tar-Datei und kopieren Sie sie in / Library / Application Support / Aquamacs Emacs / SLIME

scheint zu funktionieren OK für mich ...

Ich weiß, dass die OP will Emacs für Clojure dev verwenden. Ich bin ein Emacs-Fan mich, aber ich fand Enclojure mit ( http://www.enclojure.org/home ) eine gute Möglichkeit, um schnell mit Hacking Clojure zu beginnen.

Heute würde ich den Kopf für https://github.com/tehcurtis/aquamacs -emacs-Starter-Kit / network

Das ist für Rubin und wird nicht funktionieren auf den ersten, aber trotzdem. git clone und kopieren Dinge Preferences.el nach readme. Befestigen Sie die Gebrochen durch Bearbeiten der ~ / Library / Preferences / Aquamacs Emacs / und kommentieren Sie fast alles, was in modes.el (ich habe nur (setq-default indent-tabs-Modus nil) links in der Datei)

Der gute Teil: Sie elpa-Paket-Manager mit weniger Aufwand installiert

jetzt: Verwendung

M-x package-list-packages

zur

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

Press X to install

getan.

Caveat: Clojure-Jack-in wird nicht funktionieren, so müssen Sie

M-x slime-connect

und drücken Sie die Eingabetaste zweimal und y zu starten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top