Nov 26, 2011
Nov 26, 2011
N/A Views
MD
warning
この記事は2年以上前に更新されたものです。情報が古くなっている可能性があります。

Clojureは浦島太郎状態なので、リハビリする。

まずはClojure環境構築記事が大分古くなったので最新化

Emacsの準備 (package.el+Marmaladeでパッケージ管理)

MarmaladeはEmacs24から標準搭載らしいElispのパッケージ管理システム。使ってるEmacsは23なのでとりあえずマニュアルインストール(wgetしてload-pathに追加)。

(「It's fully compatible with package.el and ELPA」って書いてあるけど包含関係がいまいち分かっていない)

$ cd ~/.emacs.d/elisp
$ wget http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el

ちなみに僕は↓のような読み込み設定を書いています(5年くらい前に書いたままだ。。)

;; loading local elisp                                                                                                                        
(let ((my-elisp-dir "~/.emacs.d/elisp"))
  (when (file-exists-p my-elisp-dir)
    (unless (member my-elisp-dir load-path)
      (setq load-path (cons my-elisp-dir load-path)))
    (dolist (f (directory-files my-elisp-dir))
      (when (file-regular-p (format "%s/%s" my-elisp-dir  f))
        (print (format "loding %s" f))
        (require (intern (car (split-string f "\\."))))))))

package.elの設定は以下。レポジトリにMarmaladeを設定。

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

を設定(M-x eval-current-bufferで即反映)。

M-x package-listでインストールできるパッケージの一覧取得。
代表的コマンドは以下

  • M-x package-list (インストールしたいパッケージでiを押して、xでインストール)
  • M-x package-install (Enter押したあと、パッケージ名入力)
  • M-x package-refresh-contents

clojure-modeインストール

M-x package-install clojure-modeで。

2011-11-26時点で最新版のclojure-mode-1.11.4がインストールされました。更新が早い!clojurescript-modeとかあるw

あとは.emacs.elに

(require 'clojure-mode)

を書く。

Pareditの設定

よくわからんけど、clojure-modeのページで説明されてるし、ClojureBoxにも入っているみたいだから、設定しておく。.emacs.elに↓を設定。

(defun turn-on-paredit () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'turn-on-paredit)

あとで調べる

slimeのインストール

同様にM-x pacakge-install slimeM-x package-install slime-replを実行(エラーが出ても無視)。

leiningenのインストール

言わずとしれたClojureのビルドツールleiningen。wgetするもよし、パッケージ管理システム経由で取得するのもよし。僕はbrewで(バージョンは1.6.1)

$ brew info leiningen
leiningen 1.6.1
http://github.com/technomancy/leiningen
/usr/local/Cellar/leiningen/1.6.1 (3 files, 36K)

Standalone jar and dependencies installed to:
  $HOME/.m2/repository

http://github.com/mxcl/homebrew/commits/master/Library/Formula/leiningen.rb
$ brew install leiningen

swank-clojureのインストール

slimeとclojureプログラムをつなげるサーバーのswank-clojureをインストール

$ lein plugin install swank-clojure 1.3.3

バージョンは2011-11-26時点の最新。

新規プロジェクト作成

$ lein new hello
$ cd hello
$ emacs -nw src/hello/core.clj

ファイルを開いてM-x clojure-jack-inでswank-serverが立ち上がる(昔に比べてめちゃくちゃ楽だ。。)

あとはコードを書いてはreplで試して開発を勧めればおk。

代表的なコマンドはSLIME Commands参照。

個人的によく使うのは↓かな

  • C-x C-l 現在のバッファを読み込んでREPLに反映
  • C-x C-m マクロ展開
  • C-c TAB 補完
  • M-. ソースコードにジャンプ
Found a mistake? Update the entry.
Share this article: