Pergunta

Eu tentei migrar para o Emacs várias vezes para o desenvolvimento de clojure, seguindo uma variedade de posts, screencast e tutoriais, mas em algum lugar ao longo do caminho sempre deu errado - pedidos de chave que não funcionaram, versões incompatíveis, etc., e eu me vi Voltando para Vim. Mas eu sei que quero Paredit e Slime.

Então, vou tentar novamente, desta vez apoiado pela poderosa comunidade Stack Overflow ™.

Espero que a resposta a esta pergunta permaneça atualizada e possa servir de referência para convertidos tentativos como eu.

O que eu gostaria é:

  • O último lançamento estável de Clojure
  • Aquamacs (se for bom o suficiente para rich hickey, é bom o suficiente para mim), uma versão recente
  • Modo Clojure
  • Lodo/swank
  • Paredit
  • Mais alguma coisa que seja indispensável?

As instruções passo a passo para instalar as opções acima seriam excelentes-de preferência no formato de script de shell. Eu também gostaria de algumas dicas sobre como começar com as ações mais comuns relacionadas ao clojure (incluindo as chaves), incluindo links para documentação e folhas de truques.

Foi útil?

Solução

Estas são as etapas que tomei para configurá -las sem usar o ELPA. Espero que isto ajude.

Obtenha slime usando Macports

sudo port -v install slime

Obtenha paredit

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

Obtenha Clojure e Clojure-Contrib

  • Usando Macports
sudo port -v install clojure clojure-contrib
  • Ou baixar diretamente
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

Obtenha o modo de clojure e Swank-Clojure (lado Emacs)

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

Obtenha Swank-Clojure (lado Clojure)

  • Ownload do arquivo jar pré-construído
curl -O http://repo.technomancy.us/swank-clojure-1.1.0.jar
  • Ou edifício da fonte (assumindo que o Lein esteja instalado)
cd path/to/dir/swank-clojure
lein jar

Coloque arquivos clojure, clojure-Contrib e Swank-Clojure .Jar em ~/.swank-clojure ou ~/.clojure (os locais padrão onde swank-clojure.el as procura).


Adicione a ~/.emacs ou ~/biblioteca/preferências/aquamacs emacs/personalização.el (Altere os caminhos para corresponder às suas próprias configurações)

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

Outras dicas

Faça o download e instale aquamacs.

Baixe e instale o ELPA (http://tromey.com/elpa/install.html)

Faça pacotes de pacote MX

Marque as linhas chamadas "Modo de Clojure" e "Swank-Clojure" com "I", em seguida, pressione "X".

Feito.

Aqui está um post de blog que menciona o Aquamacs: Estabelecendo Clojure, Incanter, Emacs, Slime, Swank e Paredit

Parece haver uma maneira bastante fácil de configurar o Aquamacs 2.4 e o lodo para Clojure:

  1. Instale o clojure
  2. Instale o Aquamacs 2.4 daqui "http://aquamacs.org/"
  3. Instale o pacote Aquamacs Slime daqui "http://aquamacs.org/download.shtml"

este não funciona assim...

  1. Obtenha a versão mais recente do slime daqui "http://common-lisp.net/project/slime/#downloading" - você quer o arquivo alcatrão do CVS Snapshot
  2. Desembale o arquivo alcatrão de lodo e copie -o para/biblioteca/suporte de aplicativo/aquamacs emacs/slime

Parece funcionar bem para mim ...

Eu sei que o OP quer usar o Emacs para Clojure Dev. Eu mesmo sou um fã do EMACS, mas achei o uso de enclojure (http://www.enclojure.org/home) ser uma ótima maneira de começar rapidamente com hackear clojure.

Hoje eu iria para https://github.com/tehcurtis/aquamacs-emacs-starter-kit/network

Isto é para Ruby e não funciona no começo, mas de qualquer maneira. clone git e copie as preferências. Corrija o quebrantamento ao editar o ~/biblioteca/preferências/aquamacs emacs/e comente quase tudo nos modos.

A parte boa: você instalou Elpa-Package-manager com menos aborrecimento

agora usa

M-x package-list-packages

Vá para

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

Press X to install

feito.

Advertência: clojure-jack-in não funciona, então você tem que

M-x slime-connect

e pressione Enter duas vezes e y para começar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top