强制停止或停止错误

时间:2009-09-15 18:02:25

标签: r emacs ess

我想知道是否有人知道让R或ESS停止执行其余代码的好方法,如果我正在评估某个区域或缓冲区(我只发现相反的情况)请求在帮助档案中)。我在查看R帮助文件,但option(error=stop)只会停止执行有问题的函数或语句,而不会停止执行它们。谢谢!

3 个答案:

答案 0 :(得分:12)

如果R / ESS占用的计算时间太长,以至于您的emacs / ESS无法响应C-c C-c,您也可以通过从终端发送INTERRUPT信号来保存它。

首先:使用topps计算R的processID。 (我的是98490 然后: kill -2 98490 这会发送一个中断信号,然后重新启动ESS / Emacs和R会话

答案 1 :(得分:5)

According to the ESS manual,这应该有效: C-c C-c(comint-interrupt-subjob) 向ESS进程发送Control-C信号。这具有中止当前命令的效果。

John Fox有一个网站,他为ESS提供配置。在其中,他有这个功能:

(defun stop-R ()

"Interrupt R process in lower window."

(interactive)

(select-window win2)

(comint-interrupt-subjob)

(select-window win1))

您应该能够使用以下方法将此功能添加到XEmacs的菜单中:

(defun R-menu ()

  "Hook to install R menu and sub-menus"

  (add-menu-item '("ESS" "R") "Interrupt computation" 'stop-R
)
)
(add-hook 'ess-mode-hook 'R-menu)

您可以查看其余的配置文件和文档,看看它是否让您感兴趣。我还没试过,但我希望它适合你!

查理

答案 2 :(得分:2)

?断裂

只会让你失控。

?试

允许您设置可能失败并正常恢复的代码。