日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

Windows+Emacs+nrepl.el で nREPL を試してみた時のメモ

はいこんばんわ。

Emacsを使いたかったのもそもそもnREPLを使ってみたかったからで、ここでも軽くハマったのでメモ。

 

Emacs で nREPL 使うには leiningen のプロジェクトファイルに宣言して nrepl.el を入れて設定って step があるけどここでは割愛。

結論から言えば、Emacs から java.exe を見つけきれていなかったのが原因。

 

最初 M-x nrepl-jack-in すると Emacs の *Messages* バッファに

 Could not start nREPL server:'java': xxxxxxxxxxxxxxxxxxxxxxx

って xxx... の部分が文字化けしてて原因を探る為にそっちを直そうと奮闘してたのだが、ふと

java?もしかして見つけきれてない?

と思いつき調べた。するとどうやら Emacs では実行ファイルのサーチパスとして exec-path と言うものを持っているらしく、これの中身を見てみると、環境変数の PATH と持っている値が何か違う。

 

という訳で以下の elisp コードで環境変数 PATH に設定されているパスも全てぶっこんでやった。

(setq exec-path
      (mapcar '(lambda (s) (replace-regexp-in-string "\\\\" "/" s))
          (split-string (getenv "PATH") ";")))
パス区切り変換の必要があるのかどうかは良く分からんが元々持っているリストがスラッシュ区切りなのでそっちに合わせた。

 

これで M-x nrepl-jack-in したら起動した。良かった良かった。

(これでやっとスタートラインか。。。)