Clojureオボエガキ

version date memo
0.1 2014/12/27 first
0.2 2014/12/29 Vim,Leiningen追加

環境

OS Ubuntu 12.04
Clojure 1.2.1
Emacs 24.3.1
Vim Vi IMproved 7.3
Leiningen 2.5.0
Java 1.7.0_67

Leiningenインストール

Clojure自体はJVM上で動作するので、Javaのインストールは別途行って置くこと。
今回は、Clojureプログラミングを行うにあたって、プロジェクトの作成や実行環境などを提供するツールであるLeiningenをインストールする。
インストールは、Clojure 超入門 - Qiitaを参照する。

ダウンロード&インストール
# Download
wget https://raw.github.com/technomancy/leiningen/stable/bin/lein
sudo mv lein /usr/bin/ # 移動
sudo chmod +x lein     # 実行権限附与
lein self-install      # インストール

~/.lein以下にインストールされる

Emacs環境構築

ClojureプログラミングをEmacsで行う際の環境構築
パッケージ管理はCaskで行う
(2014/12/29 未完)

Caskのインストール

(参考) package.elから Caskに切り替えました - syohex’s diary

# インストール
curl -fsSkL https://raw.github.com/cask/cask/master/go | python
# Cask Update
cask upgrade

.bashrcファイルに次の設定を加える

# [user-name]には自分のユーザ名を入れる
export PATH=$PATH:/home/[user-name]/.cask/bin
パッケージのインストール

Caskファイルの作成
(作成場所は、任意で良いが、ファイルの措いてある場所にパッケージがインストールされる)
(参照) EmacsでモダンClojure開発環境構築 - Qiita

;; リポジトリの指定
(source gnu)
(source melpa)

;; インストールするパッケージ
;; Clojure
(depends-on "clojure-mode")
(depends-on "cider")
(depends-on "ac-nrepl")
(depends-on "clojure-cheatsheet")
(depends-on "clojure-test-mode")
(depends-on "slamhound")

;; Other
(depends-on "smartparens")
(depends-on "rainbow-delimmiters")    

インストール

# Caskファイルのある場所に移動
cd ~/cask
# インストール
cask install

この場合、パッケージ群は、~/cask/.cask/emacs-version以下にインストールされる

TODO

Vim環境構築

ClojureプログラミングをVimで行う際の環境構築
パッケージ管理はNeoBundleで行う

NeoBundle使い方

過去にまとめたもの vim環境設定 - オボエガキ用

Vimプラグイン

次のリンクにあるものを利用した http://blog.ieknir.com/blog/beginning-clojure-with-vim/
.vimrc辺りに下記を記述する。

" NeoBundleインストールファイル記述箇所に書く
NeoBundle 'guns/vim-clojure-static'
NeoBundle 'kien/rainbow_parentheses.vim'
NeoBundle 'tpope/vim-fireplacce'
NeoBundle 'tpope/vim-classpath'
...
" rainbow_parentheses.vimの色付け設定
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare

記述後、Vimを再起動しインストール

実行してみる

Leiningen実行を参考にしプロジェクトを作成する
src/hello/core.cljを開く
Vimのコマンドで :Eval (foo "x") と実行すると"Hello, World!"が出力される

便利コマンド

参考 : fireplaceを使うと、VimでClojureを書くのが苦労じゃなくなる - pompopo.log

:Eval (...) " (...)の部分を評価
:%Eval      " ファイル全体を評価
cpp         " カーソルが含まれる括弧を評価
cqc         " 一行限定のREPLを開く

Leiningen実行

詳しくは、次を参照のこと Leiningen入門(再) - CLOVER🍀
下記によりREPL環境を起動する

mkdir work     # 作業フォルダ作成
cd work        # 移動
lein new hello # プロジェクト(hello)作成
cd hello       # プロジェクトフォルダに移動
lein repl      # nREPL起動