J'ai joué avec beaucoup de code dans une console repl, comment puis-je l'effacer? Je voudrais un nouveau sans le redémarrer. Cela peut-il être fait?Puis-je nettoyer le repl?
Répondre
Si vous utilisez la rempl par une fenêtre de terminal (par exemple: Terminal.app sur Mac OS ou xterm/aterm/etc urxvt sur linux), vous pouvez taper Control-L et il devrait effacer la fenêtre du terminal et de donner vous une nouvelle invite repl. Cependant, toutes les macros/atomes que vous avez précédemment définis resteront en mémoire, donc c'est juste un "cosmétique" clair.
Si vous voulez effacer l'espace de noms courant de toutes les variables et fonctions temporaires vous avez déclaré que vous pouvez utiliser cette ligne (ou faire fonction de celui-ci):
(map #(ns-unmap *ns* %) (keys (ns-interns *ns*)))
ou
(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 ...
Il ne prétend pas vous donner un espace de noms grinçant propre, juste un avec moins de la camelote qui s'accumule habituellement dans une session de repli typique.
À utiliser avec précaution: ne tirez pas le tapis sous vos pieds!
merci. Je pensais juste à me débarrasser du texte dans la console ... vous y mettez une nouvelle lumière – Belun
C'est une réponse étonnante à la recherche de la bonne question. –
emacs/REPLs slime Cc Co efface la dernière sortie (au cas où vous avez tapé quelque chose qui a une très longue réponse) Cc Mo efface tout cela
Dans les terminaux GNOME, vous avez une option de menu Terminal/Reset et Clear
Notez que C-c M-o n'efface aucun travail réellement interprété par le REPL, il efface juste l'écran. Toutes les définitions sont toujours là. – johnbakers
Si vous utilisez Emacs + nREPL
, vous pouvez:
- Run M x 0
nrepl-clear-buffer
ou - Run CcMo
Si la clé de liaison n'est pas activé, exécutez Mxnrepl-interaction-mode
pour l'activer. Vous pouvez trouver d'autres raccourcis utiles dans nrepl.el et/ou personnaliser les raccourcis clavier pour répondre à vos besoins.
Note: vous pouvez trouver tous les raccourcis clavier de votre système de nREPL
en exécutant M-x v
nrepl-mode-map
et suivant le lien nrepl.el
.
pourquoi oui je cours emacs. cela fonctionne très bien, merci! :) – enderland
Le raccourci pour nettoyer l'ensemble de la mémoire tampon: C - uC - cC - o
Le raccourci pour nettoyer la dernière sortie: C - cC - o
Note, l'ancienne était: C - cM - o
J'utilise la commande Emacs cider-repl-clear-buffer
via M-x. On peut également utiliser cider-repl-clear-output
avec un argument de préfixe: C-u C-c C-0.
Cela dépend de ce que vous entendez par «propre». Pour supprimer tous les espaces de noms dans un 'package', vous pouvez utiliser:
(mapv remove-ns
(map symbol
(filter #(.startsWith % "org.mycompany")
(map str (all-ns)))))
La question initiale portait sur la suppression cosmétique du repl. plus tard je me suis rendu compte que la compensation pourrait également signifier quelque chose d'autre :) – Belun