Can I clean the repl?

后端 未结 8 1871
被撕碎了的回忆
被撕碎了的回忆 2020-12-23 13:50

I have played with a lot of code in a repl console, how can I clear it? I would like a fresh one without restarting it. Can that be done?

相关标签:
8条回答
  • 2020-12-23 14:07

    If you are running the repl through a terminal window (eg: Terminal.app on MacOS or xterm/aterm/urxvt etc on linux) then you can type Control-L and it should clear the terminal window and give you a new repl prompt. However all macros/atoms you previously defined are still going to be in memory, so this is just a "Cosmetic" clear.

    0 讨论(0)
  • 2020-12-23 14:10

    If you are using Emacs + nREPL, you can either:

    • Run Mx nrepl-clear-buffer or
    • Run Cc Mo

    If the key binding is not enabled, run Mxnrepl-interaction-mode to enable it. You can find other useful shortcuts in nrepl.el and/or customize the key bindings to fit your needs.

    Note: you can find all nREPL's key bindings in your system by running M-x v nrepl-mode-map and following the nrepl.el link.

    0 讨论(0)
  • 2020-12-23 14:11

    If you want to clear the current namespace of all temporary variables and functions you declared you can use this one liner (or make a function of it) :

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

    or

    (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 ... 
    

    It does not claim to give you a squeaky clean namespace, just one with less of the junk which usually accumulates in a typical repl session.

    Use with caution : do not pull the rug from under your feet!

    0 讨论(0)
  • 2020-12-23 14:20

    For users of the Cursive IDE plugin for IntelliJ IDEA who end up here, like me:

    You can "cosmetically" clear the REPL (keeping your def'd symbols etc.) by clicking on this icon at the top of the REPL frame:

    There's no default key binding for this, but you can easily add one by opening your preferences, navigating to Keymap > Plugins > Cursive, and adding a binding for "Clear output for current REPL".

    Alternatively, you can right-click in the editor and access "Clear output for current REPL" via the REPL commands.

    0 讨论(0)
  • 2020-12-23 14:25

    I use the Emacs command cider-repl-clear-buffer via M-x. One might also use cider-repl-clear-output with a prefix argument: C-u C-c C-o.

    0 讨论(0)
  • 2020-12-23 14:27

    The shorcut to clean the whole buffer : C-u C-c C-o

    The shortcut to clean the last output : C-c C-o

    Note, the old way was : C-c M-o

    Also, cider-repl-clear-buffer (which is bound to C-ENTER s-c on my machine)

    0 讨论(0)
提交回复
热议问题