J'ai joué avec beaucoup de code dans une console de réplication, comment puis-je l'effacer? Je voudrais un nouveau sans le redémarrer. Cela peut-il être fait?
Si vous souhaitez effacer l’espace de nom actuel de toutes les variables et fonctions temporaires déclarées, vous pouvez utiliser cette ligne (ou en faire une fonction):
(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 propre et grinçant, juste un espace contenant moins de courrier indésirable qui s'accumule généralement dans une session de réplication typique.
À utiliser avec prudence: ne tirez pas le tapis sous vos pieds!
Si vous exécutez la réplication via une fenêtre de terminal (par exemple: Terminal.app sur MacOS ou xterm/aterm/urxvt etc. sous Linux), vous pouvez taper Control-L et vous devez effacer la fenêtre de terminal et vous donner un aperçu. nouvelle réplique Cependant, toutes les macros/atomes que vous avez définis précédemment seront toujours en mémoire, il s'agit donc simplement d'une suppression "cosmétique".
Dans les REPL EMACS/slime C-C C-o efface le dernier résultat (si vous avez saisi quelque chose qui a donné une réponse très longue) C-c M-o efface le tout.
Dans les terminaux GNOME, vous avez une option de menu Terminal/Réinitialiser et effacer
Le raccourci pour nettoyer tout le tampon: C-uC-cC-o
Le raccourci pour nettoyer la dernière sortie: C-cC-o
Remarque, l'ancienne manière était: C-cM-o
De plus, cider-repl-clear-buffer
(qui est lié à C-ENTERs-c sur ma machine)
J'utilise la commande Emacs cider-repl-clear-buffer
via M-x. On pourrait aussi utiliser cider-repl-clear-output
avec un argument de préfixe: C-u C-c C-o.
Pour les utilisateurs du plugin Cursive IDE pour IntelliJ IDEA qui se retrouvent ici, comme moi:
Vous pouvez effacer "esthétiquement" le REPL (en conservant vos symboles définis, etc.) en cliquant sur cette icône en haut du cadre REPL:
Il n'y a pas de liaison de clé par défaut pour cela, mais vous pouvez facilement en ajouter une en ouvrant vos préférences, en accédant à Keymap> Plugins> Cursive et en ajoutant une liaison pour "Effacer la sortie pour la REPL actuelle".
Vous pouvez également cliquer avec le bouton droit de la souris dans l'éditeur et accéder à la rubrique "Effacer la sortie pour la réplique en cours" via les commandes REPL.
Cela dépend de ce que vous entendez par «propre». Pour supprimer tous les espaces de noms d'un "package", vous pouvez utiliser:
(mapv remove-ns
(map symbol
(filter #(.startsWith % "org.mycompany")
(map str (all-ns)))))