【问题标题】:How to terminate the process in cider-repl?如何终止 cider-repl 中的进程?
【发布时间】:2015-01-14 00:20:12
【问题描述】:

当由于无限循环而陷入死锁时,如何退出 cider-repl?

当它发生时,我必须杀死 emacs,甚至重新启动我的计算机来杀死 cider-repl。有没有更好的方法来解决这个问题?

【问题讨论】:

    标签: emacs clojure cider


    【解决方案1】:

    组合键 C-c C-c 将在 cider repl 的顶层从循环中断,同时保持 emacs 和 repl 运行。

    在常规终端 repl 中,等价于 C-c

    【讨论】:

    • 如上图所示,我定义了一个名为 random-ints 的函数,并使用 "(def x (rest (random-ints 50)))" 定义了一个符号 x,所以x 是一个无限集合。我输入“(println x)”,emacs 暂停,我无法输入任何内容。所以我转到终端并杀死 emacs。
    • @RenheHuang 我没有看到任何图片
    • @ShawnZhang 对此感到抱歉。我有一个关于发生的事情的屏幕截图,但我无法上传它。所以我将“随机整数”描述如下:(defn random-ints [limit](懒惰-seq (cons (rand-int limit) (random-ints limit))))。其余的在我最后的评论中描述。
    • 如果你运行C-c C-c,emacs最终会取消正在循环的顶层repl命令。如果它是一个紧密的循环,这将需要一段时间,如果它产生大量输出,则需要更长的时间。但它最终会停止代码,而不必杀死 emacs。
    • 也可以试试C-c C-b, s X (cider-restart in Spacemacs)C-g 也适用于所有挂起的紧急情况。
    【解决方案2】:

    当你编辑一个文件并且'jacked-into'苹果酒repl,默认输入C-c C-c运行cider-eval-defun-at-point,但输入C-c C-b运行cider-interrupt,这取消正在评估的任何内容。

    【讨论】:

      猜你喜欢
      • 2015-03-21
      • 1970-01-01
      • 2016-08-31
      • 2015-07-24
      • 2016-08-16
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多