51

replコンソールでたくさんのコードを試してみましたが、どうすればクリアできますか?再起動せずに新しいものが欲しいのですが。それはできますか?

4

8 に答える 8

54

宣言したすべての一時変数と関数の現在の名前空間をクリアする場合は、次の 1 つのライナーを使用できます (またはその関数を作成します)。

(map #(ns-unmap *ns* %) (keys (ns-interns *ns*)))

また

(ns myutil)
(defn ns-clean
       "Remove all internal mappings from a given name space or the current one if no parameter given."
   ([] (ns-clean *ns*)) 
   ([ns] (map #(ns-unmap ns %) (keys (ns-interns ns)))))
(ns mytest)

... make loads of junk ...

(myutil/ns-clean)

... great!!! I can now make all new junk ... 

きしむようなきれいな名前空間を提供するとは主張していません。通常、典型的な repl セッションで蓄積されるがらくたが少ない名前空間です。

注意して使用してください:ラグを足の下から引っ張らないでください!

于 2010-09-03T17:42:53.747 に答える
24

ターミナル ウィンドウ (例: MacOS の Terminal.app または Linux の xterm/aterm/urxvt など) から repl を実行している場合は、Control-Lを入力すると、ターミナル ウィンドウがクリアされ、新しい repl プロンプトが表示されます。ただし、以前に定義したすべてのマクロ/アトムは引き続きメモリ内に存在するため、これは単に「表面的な」クリアです。

于 2010-09-03T15:19:48.103 に答える
19

EMACS / slime REPLでは、Cc Coは最後の出力をクリアします(非常に長い答えを与えるものを入力した場合)CcMoはすべてをクリアします

GNOMEターミナルには、メニューオプション[ターミナル/リセットおよびクリア]があります。

于 2010-09-06T09:04:12.690 に答える
7

バッファ全体をクリーンアップするショートカット: C- u C- c C-o

最後の出力を消去するショートカット: C- c C-o

注意、古い方法は次のとおりでした: C- c M-o

また、 (私のマシンでは- -にcider-repl-clear-bufferバインドされています)CENTER sc

于 2015-12-16T12:44:08.363 に答える
4

Emacs + を使用している場合はnREPL、次のいずれかを実行できます。

  • 実行Mx nrepl-clear-buffer または
  • 走るCc Mo

キーバインドが有効になっていない場合は、実行Mxnrepl-interaction-modeして有効にします。nrepl.elで他の便利なショートカットを見つけたり、ニーズに合わせてキー バインドをカスタマイズしたりできます。

注:リンクを実行してたどることnREPLで、システム内のすべての のキーバインディングを見つけることができます。M-x v nrepl-mode-mapnrepl.el

于 2013-05-25T21:51:11.790 に答える