2

EDITまだ完全に理解していない理由で、私の Cx Ce は(?) slime-eval-last-expression の代わりにeval-last-sexpにバインドされていました。これで、 .cljバッファーからCx Ceを実行できるようになり、少なくとも自分の関数が (正しくない) 場合は直接確認できますが、これではどうやら関数が "利用可能" になるわけではありませ。 REPL。

Clojure プログラミングを行うように Emacs をセットアップしましたが、セットアップが正しいかどうかわかりません。

2 つのバッファーがあります。1 つは.cljファイル用で、もう 1 つは REPL 用です。clojure-jack-inを使用して REPL を開始しています。

どうやら私は常に.cljをコンパイルする必要があり(これにより常にプロンプ​​トでファイルを保存するように強制されます)、次に REPL に切り替えて、試行する前に REPL で(use 'myname.space)を発行する必要があります。 、たとえば、私が書いた新しい関数。

これは、非常に単純なことのように見える多くのキーを押す必要があります。

もちろん、保存/確認/ REPL への切り替え/シバンの発行 ('myname.space を使用) を行う Emacs マクロを作成することもできますが、セットアップが正しいかどうか疑問に思っていました。

言い換えれば、私の質問は次のようになると思います:私が接続しているREPLは、私が取り組んでいる.cljを含むバッファと常に「同期」していると思われますか?

4

1 に答える 1

3

Emacs で clojure を編集している場合は、Slime を使用する必要があります。https://github.com/technomancy/swank-clojureを参照してください

次に、Mx clojure-jack-in を使用して emacs で REPL を起動および接続した場合、Cx Ce を実行して現在の SEXP をコンパイルおよびロードするか、Cx Ck を実行して現在のバッファーをコンパイルおよびロードします。

言い換えれば、repl は、いくつかの clojure コード バッファーに入力したものと "自動的に" 同期するわけではありませんが、バッファーから実行中の clojure プログラムにコードを送信するためのはるかに迅速で簡単な方法があります。

于 2012-04-25T15:06:03.723 に答える