2

我想建议inferior-ess-send-input交互式函数调用我的函数来*R dired*自动刷新缓冲区。我试过使用afteraround作为类。例如:

(defadvice inferior-ess-send-input (around ess-revert-rdired-after-send activate)
    ad-do-it
    (call-interactively 'ess-revert-rdired-buffer))

我也尝试过使用after甚至更改 ESS 的源代码来创建运行后挂钩。他们都有同样的问题。我什至定义了一个新函数,它一个接一个地调用。

但我不断收到消息:

ess-error: ESS 进程未准备好。在重试之前完成您的命令。

来自ess-command. 出于某种原因,添加此建议会sprocess很忙。有任何想法吗?

附言

这里的功能是(正在进行中):

(defun ess-revert-rdired-buffer ()
  "If the buffer is live, update it. If it isn't start it."
  (interactive)
  (save-selected-window
     (if (buffer-live-p (get-buffer "*R dired*"))
    (save-excursion
      (with-current-buffer "*R dired*"
        (revert-buffer)))
      (ess-rdired))))
4

1 回答 1

1

我发现等待 0.05 秒就足以让进程做好准备。

于 2014-08-04T23:48:06.537 回答