Ho giocato con un sacco di codice in una console di repl, come posso cancellarlo? Vorrei uno nuovo senza ricominciare. Può essere fatto?Posso pulire il repl?
risposta
Se si esegue l'repl attraverso una finestra di terminale (ad esempio: Terminal.app su MacOS o xterm/aterm/urxvt etc su linux) quindi è possibile digitare Control-L e dovrebbe cancellare la finestra del terminale e dare un nuovo prompt repl. Tuttavia tutte le macro/atomi precedentemente definiti saranno ancora in memoria, quindi questo è solo un "Cosmetic" chiaro.
Se si desidera cancellare lo spazio dei nomi corrente di tutte le variabili e le funzioni temporanee si dichiarato è possibile utilizzare questo uno di linea (o fare una funzione di esso):
(map #(ns-unmap *ns* %) (keys (ns-interns *ns*)))
o
(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 ...
Non pretende di darti uno spazio dei nomi pulito, solo uno con meno spazzatura che di solito si accumula in una tipica sessione di sostituzione.
Usare con cautela: non tirare il tappeto da sotto i piedi!
grazie. stavo pensando solo a liberarmi del testo nella console ... hai messo nuova luce in esso – Belun
Questa è una risposta sorprendente alla ricerca della domanda giusta. –
in Emacs/REPLs melma Cc Co cancella l'ultima uscita (nel caso in cui hai digitato qualcosa che ha dato una risposta molto lunga) Cc Mo cancella il tutto
In terminali GNOME, hai un'opzione di menu terminale/reset e Clear
Si noti che C-c M-o non cancella alcun lavoro effettivamente interpretato dal REPL, ma cancella semplicemente lo schermo. Qualsiasi definizione è ancora lì. – johnbakers
Se si utilizza Emacs + nREPL
, è possibile:
- Run Mx
nrepl-clear-buffer
o - Run CcMo
Se il legame chiave non è abilitata, l'esecuzione Mxnrepl-interaction-mode
per attivarlo. Puoi trovare altre scorciatoie utili in nrepl.el e/o personalizzare le associazioni di tasti in base alle tue esigenze.
Nota: è possibile trovare tutte le nREPL
s' associazioni dei tasti nel sistema eseguendo M-x v
nrepl-mode-map
e seguendo il link nrepl.el
.
perché sì, sto eseguendo emacs. questo funziona benissimo, grazie! :) – enderland
La scorciatoia per pulire l'intero buffer: C - uC - cC - o
La scorciatoia per pulire l'ultima uscita: C - cC - o
nota, il vecchio modo era: C - cM - o
io uso il comando Emacs cider-repl-clear-buffer
via M-x. Si potrebbe anche usare cider-repl-clear-output
con un argomento prefisso: C-u C-c C-o.
Dipende da cosa si intende per "pulito". Per rimuovere tutti gli spazi dei nomi all'interno di un "pacchetto" è possibile utilizzare:
(mapv remove-ns
(map symbol
(filter #(.startsWith % "org.mycompany")
(map str (all-ns)))))
la domanda iniziale riguardava la pulizia estetica del repl. più tardi ho capito che la compensazione poteva anche significare qualcos'altro :) – Belun