我想建议inferior-ess-send-input
交互式函数调用我的函数来自动刷新*R dired*
缓冲区。我已尝试使用after
和around
作为类。例如:
(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
忙碌。有什么想法吗?
P.S。
这里的功能是(正在进行中):
(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))))
答案 0 :(得分:1)
我发现等待0.05秒就足以让流程做好准备。