LoginSignup
18
16

More than 1 year has passed since last update.

Clojure開発環境での基本操作まとめ: Spacemacs, IntelliJ IDEA (Cursive), VS Code (Calva), Vim (vim-iced), rebel-readline

Last updated at Posted at 2020-07-25

State of Clojure Community 2020によると、Clojure開発環境の人気上位はEmacs/Spacemacs (43.23%), IntelliJ IDEA (31.73%), VS Code (9.88%), Vim (8.87%)ということで、これらのエディタ/IDEは国内のClojurianの間でもよく使われている印象があります。

そこで、今回の記事では以下5種類の開発環境で高頻度で利用すると思われる基本的な操作を簡単に整理してみます。

その他のエディタも含めたClojure開発関連プラグインについてはClojure/ClojureScript関連リンク集 > エディタプラグインが参考になるかもしれません。

また、rebel-readlineはエディタ/IDEによる高度なREPL関連機能が使えない状況で素のREPLを少し便利にしてくれるライブラリで、LeiningenやClojure CLIからいつでも使えるように設定しておくのがオススメです(cf. 参考: rebel-readlineの設定)。

ちなみに、私lagénorhynque (a.k.a カマイルカ)はSpacemacsユーザでClojure以外も含めてほぼすべてSpacemacsで完結させている(Scala, JavaのためにIntelliJを起動することがたまにあるくらい)ので、他のエディタ/IDEでの操作にはとても不慣れです😅

REPLの起動と接続

Spacemacs + Clojure layer

  • 操作: , ' (または M-RET ')してコマンド(e.g. cider-jack-in-clj)を選択

image.png

image.png

※ REPLバッファを右側に開いてみた例(レイアウトなどはお好みで)

IntelliJ IDEA + Cursive

  • 初回の設定: Add Configurationで Clojure REPL > Local の実行/デバッグ設定を追加する

  • 操作: Control+Shift+R

image.png

image.png

image.png

VS Code + Calva

  • 操作: Control+Option+C Control+Option+J (または Control+Alt+C Control+Alt+J)してプロジェクトタイプ(e.g. Leiningen)とプロファイル(e.g. :dev, :repl)を選択

image.png

image.png

image.png

Vim + vim-iced

  • 操作: <Leader>"

image.png

image.png

image.png

※ 標準出力バッファを右側に開いてみた例(レイアウトなどはお好みで)

rebel-readline

  • Leiningenでの操作: lein trampoline run -m rebel-readline.main (エイリアスが rebel なら lein rebel)

  • Clojure CLIでの操作: clojure -m rebel-readline.main (エイリアスが rebel なら clojure -M:rebel)

image.png

定義ジャンプ(またはsourceの表示)

Spacemacs + Clojure layer

  • 操作: , g g (または M-RET g g)

image.png

image.png

IntelliJ IDEA + Cursive

  • 操作: Command+B (または Control+B)

image.png

image.png

VS Code + Calva

  • 操作: F12

image.png

image.png

Vim + vim-iced

  • 操作: <C-]>

image.png

image.png

rebel-readline

  • 操作: Contrl+X Control+S

image.png

image.png

docの表示

Spacemacs + Clojure layer

  • 操作: , h h (または M-RET h h)

image.png

image.png

IntelliJ IDEA + Cursive

  • 操作: F1

image.png

image.png

VS Code + Calva

  • 操作: Command+K Command+I (または Control+K Control+I)

image.png

image.png

Vim + vim-iced

  • 操作: <Leader>hb

image.png

image.png

rebel-readline

  • 操作: Contrl+X Control+D

image.png

image.png

局所的なeval

Spacemacs + Clojure layer

  • 操作: , e e (または M-RET e e)

image.png

image.png

image.png

image.png

IntelliJ IDEA + Cursive

  • 初回の設定: Keymapで Plug-ins > Cursive > Send Form Before Caret to REPL にショートカットを設定する(e.g. Option+Shift+E)

  • 操作: Send Form Before Caret to REPL のショートカット

image.png

image.png

image.png

image.png

image.png

VS Code + Calva

  • 操作: Control+Option+C E (または Control+Alt+C E)

image.png

image.png

image.png

image.png

Vim + vim-iced

  • 操作: <Leader>et

image.png

image.png

image.png

image.png

rebel-readline

  • 操作: Contrl+X Control+E

image.png

image.png

image.png

image.png

参考: rebel-readlineの設定

ClojureのデフォルトのREPLを便利にしてくれるrebel-readlineREADMEの説明に従って以下のようにプロジェクト横断でグローバルにLeiningenやClojure CLIに設定することができます(特定のプロジェクトに対してだけ組み込むことも可能です)。

Leiningen

~/.lein/profiles.clj
{:user {:dependencies [[com.bhauman/rebel-readline "0.1.4"]]
        :aliases {"rebel" ["trampoline" "run" "-m" "rebel-readline.main"]}}}

Clojure CLI

~/.clojure/deps.edn
{:aliases {:rebel {:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"}}
                   :main-opts ["-m" "rebel-readline.main"]}}}

Further Reading

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16