Emacs 如何停止对导致swank clojure粘液变慢的大型repl结果的评估?

Emacs 如何停止对导致swank clojure粘液变慢的大型repl结果的评估?,emacs,clojure,io,read-eval-print-loop,Emacs,Clojure,Io,Read Eval Print Loop,每当我计算一个将大数据结构打印到repl中的大值时,slime从那时起变得非常缓慢。随后在repl中键入任何内容都会显示repl中出现的值的延迟,并且对任何clojure代码的进一步评估都很慢。唯一有效的方法是重新启动repl,这似乎不是一个解决方案 大型数据结构的一个简单示例是先对文件进行slurp处理,然后打印它(这甚至可能是一个相当小的文件) 这似乎在Win7和Ubuntu中都会发生 任何关于如何阻止这种情况以及为什么会发生的想法都将不胜感激 当我遇到这个问题(经常发生)时,我只需清除re

每当我计算一个将大数据结构打印到repl中的大值时,slime从那时起变得非常缓慢。随后在repl中键入任何内容都会显示repl中出现的值的延迟,并且对任何clojure代码的进一步评估都很慢。唯一有效的方法是重新启动repl,这似乎不是一个解决方案

大型数据结构的一个简单示例是先对文件进行slurp处理,然后打印它(这甚至可能是一个相当小的文件)

这似乎在Win7和Ubuntu中都会发生


任何关于如何阻止这种情况以及为什么会发生的想法都将不胜感激

当我遇到这个问题(经常发生)时,我只需清除repl缓冲区。您可以使用C-C M-o或使用“REPL”菜单项下的“Clear Buffer”来执行此操作。这不会重新启动repl,和命令历史记录等都不受影响。

可以控制从REPL打印多少信息的一种方法是使用and变量从clojure本身打印。

有趣的是,我在Windows上使用ClojureBlox观察到了同样的行为,我也在轻敲我的脚趾,希望找到一种在执行时中断的方法。下面是要复制的代码:-处理低俗小说的剧本。它起作用的原因是,这不是repl问题,而是Emacs中缓冲区大小的问题。Emacs不擅长处理过大的缓冲区。在你提到这一点后,我检查了它,你的权利,一个较少的历史清除技术是C-C-o,它只刷新最后一个条目。。。我将把这个问题留一段时间,看看是否有人真的有理由这样做或修复。我无法想象“Emacs不能处理大量文本”是文本编辑器的一个好借口……Emacs可以处理非常大的文件,但repl缓冲区没有文件支持,所以像memmap这样的技术是行不通的。不管怎样,考虑在这个问题上加上“Emacs”标签。那么你的建议是我保存了RePL?这样它就可以作为一个文件备份了吗?@Tooballways不,我只是指出emacs可以处理“大量文本”的主要情况,即编辑大文件。