2

Clojure を書くために IntelliJ を使用しています。組み込みの REPL を使用してコードを実行します。理由はわかりませんが、プロジェクトを実行した後、メインの名前空間に REPL を使用するために、常に「REPL NS を現在のファイルに切り替え」、「REPL にファイルをロード」する必要があります。これらのクリックを回避し、実行が終了した直後に REPL を操作する方法があるかどうかを尋ねたいと思います。

4

1 に答える 1

3

Cursive では、現在アクティブな REPL にフォームを送信する方法が 2 つあります。

  1. REPL ウィンドウの下部にある REPL コマンド ラインから、キー バインディングに関連付けられているキーの組み合わせを押しますExecute Current Statement(デフォルトはCtrl-Enter) 。
  2. ファイル エディター ウィンドウから、キャレットをフォームに配置し、キー バインドに関連付けられているキーの組み合わせを押しますSend top form to REPL(デフォルトCtrl-Shift-P、私はそれを に再バインドしますCtrl-Enter) 。

REPL コマンドラインから、フォームは常に REPL の現在の名前空間で評価されます (userデフォルト)。別の名前空間でフォームを評価したい場合は、まず次のいずれかでその名前空間に切り替える必要があります。

  • (ns 名前空間) コマンド
  • キーバインドに関連付けられたキーの組み合わせを押すSwitch REPL NS to current file(デフォルトCtrl-Shift-N)

ただし、ファイル エディターからフォームを送信すると、フォームを実行する名前空間をファイル自体から推測できます。バックグラウンドでは、次のようになります。

  1. アクティブな REPL 名前空間をファイル名前空間に切り替えます
  2. REPL で選択されたフォームを評価する
  3. 以前にアクティブだった REPL 名前空間に戻ります。

こうすれば、REPL で名前空間を切り替える必要がなくなり、名前空間が混同される可能性がはるかに少なくなります。

ただし、設定Evaluate forms in REPL namespaceがチェックされていない場合にのみそれが行われます。そうでない場合は、REPLコマンドラインから入力した場合と同じように、現在のREPL名前空間でフォームを評価し、名前空間を手動で切り替える必要があります。

于 2016-02-23T16:07:03.037 に答える