Hi Erik, [...] > * Identity function > #+begin_src R :session :results output silent > test <- function(x) { > x > } > test(3) > #+end_src > > If I use C-c ' to open an R code buffer and C-c C-c, I see the same > behavior as in ESS. However, when I do C-c C-c on the code block *in > the test.org buffer*, the code is sent to the *R* buffer, but it does > not scroll. In the *R* buffer, once I do scroll to the bottom, I see > the following: > >> > test <- function(x) { > x > } > test(3) > 'org_babel_R_eoe' > >> test <- function(x) { > + x > + } >> test(3) > [1] 3 >> 'org_babel_R_eoe' > [1] "org_babel_R_eoe" > > Can anyone > 1) replicate that you don't see the scrolling, even with the > comint-scroll-to-bottom-on-output variable set to 't'?
Yes, this has been on my todo list for a while! Definitely time to fix it. > 2) suggest a way to get the *R* buffer to scroll to the bottom when I > execute a source block from an org-mode file to a running *R* session? It seems to be fixable by changing a couple of save-window-excursions into save-excursions (patch below). I haven't thought of anything that this will break, but in any case I suspect that Eric S. will apply the correct fix to the main git repo soon. As for the 'org_babel_R_eoe' stuff, that is org-babel internals that ideally would not be exposed to the user. I suspect that it is possible to remove it from the comint buffer -- Eric S. is definitely best placed to comment on the best way of doing that. I'm sure this is obvious to you, but while we're on the topic: the reason that the org-babel R comint evaluation behaviour differs from ESS is because org-babel required a common mechanism that would work for all the supported languages; we were aware all along that ESS had already done an excellent job of doing that for R (plus some other languages). Please do let us know of any other improvements we can make to using org-babel with ESS. Good integration with ESS has been one of our aims from the beginning. Dan --8<---------------cut here---------------start------------->8--- commit d84c426027653a41ad02992d06d7c151d26d1f4b Author: Dan Davison <davi...@stats.ox.ac.uk> Date: Tue Feb 16 21:08:09 2010 -0500 babel: allow point to move to end of comint buffer diff --git a/contrib/babel/lisp/langs/org-babel-R.el b/contrib/babel/lisp/langs/org-babel-R.el index 1fe2826..c3f9e19 100644 --- a/contrib/babel/lisp/langs/org-babel-R.el +++ b/contrib/babel/lisp/langs/org-babel-R.el @@ -39,7 +39,7 @@ "Execute a block of R code with org-babel. This function is called by `org-babel-execute-src-block'." (message "executing R source code block...") - (save-window-excursion + (save-excursion (let* ((processed-params (org-babel-process-params params)) (result-type (fourth processed-params)) (session (org-babel-R-initiate-session (first processed-params))) diff --git a/contrib/babel/lisp/org-babel-comint.el b/contrib/babel/lisp/org-babel-comint.el index d65f054..e693a40 100644 --- a/contrib/babel/lisp/org-babel-comint.el +++ b/contrib/babel/lisp/org-babel-comint.el @@ -45,7 +45,7 @@ body inside the protection of `save-window-excursion' and `save-match-data'." (declare (indent 1)) - `(save-window-excursion + `(save-excursion (save-match-data (unless (org-babel-comint-buffer-livep ,buffer) (error (format "buffer %s doesn't exist or has no process" ,buffer))) --8<---------------cut here---------------end--------------->8--- > > I am surprised by this behavior since I just assumed comint-mode > should do the right thing, so I'm not sure where the issue is! Even if > this can't be changed, I think org-babel is going to be a great use to > me, thank you! > > Best Regards, > Erik Iverson > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode