9

我想知道如果我正在评估一个区域或缓冲区(我只在帮助档案)。我正在查看 R 帮助文件,但option(error=stop)只会停止执行有问题的函数或语句,但不会停止执行它后面的那些。谢谢!

4

3 回答 3

12

如果 R/ESS 占用了太多计算时间,以至于您的 emacs/ESS 对 Cc Cc 没有响应,您也可以通过从终端发送 INTERRUPT 信号来保存它。

top首先:使用or找出 R 的 processID ps。(我的是 98490 然后: kill -2 98490 这会发送一个中断信号,然后您将返回 ESS/Emacs 和 R 会话

于 2009-11-16T19:38:23.027 回答
5

根据 ESS 手册,这应该有效: (comint-interrupt-subjob)向 ESS 进程C-c C-c发送信号。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)

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

查理

于 2009-09-26T08:14:28.577 回答
2

?休息

只会让你脱离循环。

?尝试

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

于 2009-09-16T02:20:17.507 回答