Обновить *R dired* буфер после выполнения команды в подчиненном процессе ESS
Я хотел бы посоветовать 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: процесс ESS не готов. Завершите свою команду, прежде чем пытаться снова.
приходит из ess-command
, По какой-то причине добавление этого совета делает sprocess
занятый. Есть идеи?
PS
Здесь функция (работа в процессе):
(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))))
1 ответ
Я обнаружил, что ожидания 0,05 секунды было достаточно для подготовки процесса.