nrepl.el(nREPLのEmacsクライアント)の使い方メモ

EmacsでClojure開発環境構築メモ - oknknicの日記」でも少し言及したnrepl.el。
今回は実用メモ。

REPL操作

REPLの起動
  • C-c M-j nREPL-Server と Client を起動し、Client から Server へ接続
    • leiningenで生成したプロジェクトのcljファイルを開いた状態で実行すると、そのプロジェクトのREPLが起動
    • C-u を前段で実行すると、プロジェクトをエコーエリアで選択可能
  • C-c C-z REPLバッファにカーソルを移動
REPL操作
  • TAB シンボルのコンプリート
  • C-j 改行+インデント
  • C-RET 必要な括弧を全て閉じた上で評価
  • C-c M-o REPLバッファのクリア

エディタ操作

なお、以下の操作は C-右クリック で選択して実行も可能。

REPLへ影響を与える操作
  • C-c M-n REPLのネームスペースを、現在のバッファのネームスペースへスイッチ
  • C-c C-k 現在のバッファを読み込み
  • C-c C-l プロジェクト外ファイルの読み込み(エコーエリアでファイル指定)
  • フォームを評価し、結果をエコーエリアに表示
    • C-c C-c カーソル位置のトップレベルフォームを評価
    • C-c C-r 選択範囲のフォームを評価
    • C-x C-e カーソル位置直前のフォームを評価
編集補助
  • M-TAB(ESC TAB) シンボルのコンプリート
カーソル移動
  • M-. シンボルの定義へ移動
  • M-, 移動前へ戻る
情報表示
  • C-c C-d カーソル位置のシンボルのドキュメントを表示
  • C-c C-s カーソル位置のシンボルのソースを表示
  • C-c C-j カーソル位置のシンボルのJavaDocを標準ブラウザで表示
マクロエキスパンド
  • C-c C-m カーソル位置のシンボルをmacroexpand-1し、別バッファへ表示
  • C-c M-m カーソル位置のシンボルをclojure.walk/macroexpand-allし、別バッファへ表示

参考: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))