【问题标题】:How to stop current execution process in ESS when C-c C-c is unresponsive?当 C-c C-c 无响应时,如何停止 ESS 中的当前执行过程?
【发布时间】:2017-01-01 17:55:17
【问题描述】:

我正在处理一个在其字段中包含大量文本的数据表,当我错误地调用一个开始打印它的命令导致 R 冻结或缓慢打印所有内容时,我必须杀死 emacs 并重置我所有的窗口和缓冲区。这是因为在打印过程中,命令C-c C-c 没有响应。

您知道如何在不破坏整个工作设置的情况下继续处理此问题吗?

【问题讨论】:

  • 你试过 C-g keyboard-quit 吗?

标签: r emacs ess


【解决方案1】:

你可以用类似的东西杀死 ess 进程,

(defun ess-abort ()
  (interactive)
  (kill-process (ess-get-process)))
(define-key ess-mode-map (kbd "C-c C-a") 'ess-abort)
(define-key inferior-ess-mode-map (kbd "C-c C-a") 'ess-abort)

例如,在 R repl 中,

library(ggplot2)
toString(diamonds)

后跟C-c C-a。但是,还没有在 Windows 上尝试过。

【讨论】:

  • 将上面代码中的“kill-process”替换为“interrupt-process”(粘贴到 .emacs 文件中)可以让您保持 R 会话保持打开状态,并保持您已经生成的所有数据
  • 很高兴知道,我认为最近在 ESS 中解决了这个问题
猜你喜欢
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多