2

対話型関数に、バッファを自動的inferior-ess-send-inputに更新する関数を呼び出すようにアドバイスしたいと思います。andをクラスとして*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忙しくなります。何か案は?

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))))
4

1 に答える 1

1

0.05 秒待機すれば、プロセスの準備が整うのに十分な時間であることがわかりました。

于 2014-08-04T23:48:06.537 に答える