我可以清洁repl吗?
我在一个repl控制台上玩了很多代码,我怎么能清除它? 我想要一个新的没有重新启动它。 可以这样做吗?
如果你想清除你声明的所有临时variables和函数的当前命名空间,你可以使用这一个class轮(或者做一个函数):
(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会话中积累的垃圾。
谨慎使用:不要从地脚下拉地毯!
在EMACS / slime REPL中,Cc Co清除最后一个输出(如果你input了一个给出了很长答案的东西),Cc Mo清除了整个事情
在GNOMEterminal中,您有一个菜单选项Terminal / Reset和Clear
如果你通过terminal窗口运行repl(例如:MacOS上的Terminal.app或Linux上的xterm / aterm / urxvt等),那么你可以inputControl-L ,它应该清除terminal窗口并给你一个新的repl提示符。 不过你之前定义的所有macros/primefaces仍然会在内存中,所以这只是一个“化妆品”的清晰。
清理整个缓冲区的快捷方式: C – u C – c C – o
清除最后一个输出的快捷方式: C – c C – o
请注意,旧的方式是: C – C M – O
如果您使用的是Emacs + nREPL
,则可以:
- 运行M x
nrepl-clear-buffer
或 - 运行C c M o
如果未启用密钥绑定,请运行M x nrepl-interaction-mode
启用它。 您可以在nrepl.el中find其他有用的快捷方式和/或自定义键绑定以满足您的需求。
注意:通过运行Mx v
nrepl-mode-map
和nrepl.el
链接,您可以在系统中find所有nREPL
的密钥绑定。
我通过Mx使用Emacs命令cider-repl-clear-buffer
。 也可以使用带有前缀参数的cider-repl-clear-output
: Cu Cc Co。
这取决于你所说的“干净”。 要删除“包”中的所有名称空间,可以使用:
(mapv remove-ns (map symbol (filter #(.startsWith % "org.mycompany") (map str (all-ns)))))