强制停止或停止错误

hat*_*rix 9 emacs r ess

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

Yan*_*urm 12

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

首先:使用top或计算出R的processID ps.(我的是98490然后: kill -2 98490 发送一个中断信号,你得到你的ESS/Emacs和R会话


Cha*_*lie 5

根据ESS手册,这应该起作用: C-c C-c(comint-interrupt-subjob)Control-C向ESS进程发送信号。这具有中止当前命令的作用。

John Fox在一个网站上提供了ESS的配置。在其中,他具有以下功能:

(defun stop-R ()

"Interrupt R process in lower window."

(interactive)

(select-window win2)

(comint-interrupt-subjob)

(select-window win1))
Run Code Online (Sandbox Code Playgroud)

您应该可以使用以下命令将此功能添加到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)
Run Code Online (Sandbox Code Playgroud)

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

查理


42-*_*42- 2

?休息

只会让你脱离循环。

?尝试

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