EmacsでClojure開発環境構築メモ

Emacsclojure-mode + nrepl.el によるClojure開発環境を構築したのでメモ。

背景

swank-clojureが非推奨になったようなので、nrepl.elを導入。

Deprecated

This project is no longer under active development.
New users are strongly encouraged to try out nrepl.el instead. If you need an advanced debugger, Ritz might be a better fit.

導入

下記の「Installation」に沿って導入。

以下に具体的な手順を記載する。

package.el ver.0.9 の導入

Emacs 24以降であればビルトインらしいが、私のLispbox環境はGNU Emacs 23.2.1のため、導入が必要)
(ちなみに、nrepl.elの要件は GNU Emacs 23.2+ or 24 なので、私の環境は満たしている)

取得元:https://github.com/technomancy/package.elからhttp://bit.ly/pkg-el23
格納先:lispbox-0.7/emacs-23.2/lisp 配下

.emacsに以下を追記

(require 'package)
Emacs Lispリポジトリ(Marmalade、MELPA)の登録

.emacsに以下を追記

(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
clojure-modeの導入

.emacsに以下を追記

(unless (package-installed-p 'clojure-mode)
  (package-refresh-contents)
  (package-install 'clojure-mode))
nrepl.elの導入

.emacsに以下を追記

(when (not (package-installed-p 'nrepl))
  (package-install 'nrepl))

以上の設定の上、必要に応じてemacsにて以下を実行

M-x package-refresh-contents [RET]

動作確認

clojure-mode
  • M-x run-lisp シンプルなREPLサブプロセスを起動(Leiningen利用)
    • C-c C-r 選択領域を上記REPLで評価
    • C-c C-l ファイル全体を上記REPLで評価
nrepl
  • M-x nrepl-jack-in nREPL-Server と Client を起動し、Client から Server へ接続(Leiningenで生成したプロジェクトのcljファイルを開いた状態で実施する)(キーボードショートカットは C-c M-j )
  • C-u M-x nrepl-jack-in 上と同様だが、対象プロジェクトを選択できる
  • M-x nrepl 既に起動している nREPL-Server に接続する
参考:キーボードショートカットリスト

下記を参照

補足:nREPLサーバをClojureアプリケーションに組み込む

project.cljに追記

[org.clojure/tools.nrepl "0.2.3"]

アプリケーションに追記

(use '[clojure.tools.nrepl.server :only (start-server stop-server)])
(defonce server (start-server :port 7888))