* [babel, ess] How can I make S-RET to be multi-session friendly? @ 2012-08-09 18:44 Mikhail Titov 2012-08-09 19:33 ` Achim Gratz 2012-08-10 12:42 ` Eric Schulte 0 siblings, 2 replies; 12+ messages in thread From: Mikhail Titov @ 2012-08-09 18:44 UTC (permalink / raw) To: emacs-orgmode Hello! There is a wonderful post[1] on how to make S-RET to do handy things in ESS mode. However I often find myself working on several Org documents from different folders. It is quite inconvenient to change a directory in =*R*= buffer each time I work on different document. Is there a neat way to somehow reuse Org mode property =session= that I set buffer wide? Also for some reason #+PROPERTY: session *Rsomename* does not override session name set in =org-babel-default-header-args:R= even after =C-c C-c= on it when I re-evaluate babel code block with =C-c C-c= on code block, while explicit block header =:session *Rsomename*= makes difference. ,----[ snippet from dot emacs ] | (setq org-babel-default-header-args:R | '((:results . "output") (:session . "*R*"))) `---- I'm running Org-mode version 7.8.10 (release_7.8.10-658-g451191.dirty) Footnotes: [1] http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/ -- Mikhail ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-09 18:44 [babel, ess] How can I make S-RET to be multi-session friendly? Mikhail Titov @ 2012-08-09 19:33 ` Achim Gratz 2012-08-10 12:42 ` Eric Schulte 1 sibling, 0 replies; 12+ messages in thread From: Achim Gratz @ 2012-08-09 19:33 UTC (permalink / raw) To: emacs-orgmode Mikhail Titov writes: > I'm running Org-mode version 7.8.10 (release_7.8.10-658-g451191.dirty) No you don't... please do git fetch --tags origin Can't help with your question, sorry. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Waldorf MIDI Implementation & additional documentation: http://Synth.Stromeko.net/Downloads.html#WaldorfDocs ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-09 18:44 [babel, ess] How can I make S-RET to be multi-session friendly? Mikhail Titov 2012-08-09 19:33 ` Achim Gratz @ 2012-08-10 12:42 ` Eric Schulte 2012-08-10 18:54 ` Mikhail Titov 1 sibling, 1 reply; 12+ messages in thread From: Eric Schulte @ 2012-08-10 12:42 UTC (permalink / raw) To: Mikhail Titov; +Cc: emacs-orgmode Mikhail Titov <mlt@gmx.us> writes: > Hello! > > There is a wonderful post[1] on how to make S-RET to do handy things in > ESS mode. However I often find myself working on several Org documents > from different folders. > > It is quite inconvenient to change a directory in =*R*= buffer each > time I work on different document. > > Is there a neat way to somehow reuse Org mode property =session= that I > set buffer wide? > I'm not sure what you mean by "reuse". All of the information for how to set header arguments in available at (info "(org) Using header arguments") > > Also for some reason > > #+PROPERTY: session *Rsomename* > > does not override session name set in > =org-babel-default-header-args:R= even after =C-c C-c= on it when I > re-evaluate babel code block with =C-c C-c= on code block, while > explicit block header =:session *Rsomename*= makes difference. > Yes, the order of precedence is system-level < buffer/subtree-level < language-level < code-block-level > > ,----[ snippet from dot emacs ] > | (setq org-babel-default-header-args:R > | '((:results . "output") (:session . "*R*"))) > `---- > Given that (:session . "*R*") will be used by default you could simply remove it from your custom setting for org-babel-default-header-args. Best, > > I'm running Org-mode version 7.8.10 (release_7.8.10-658-g451191.dirty) > > Footnotes: > [1] > http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/ -- Eric Schulte http://cs.unm.edu/~eschulte ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-10 12:42 ` Eric Schulte @ 2012-08-10 18:54 ` Mikhail Titov 2012-08-11 3:37 ` Eric Schulte 0 siblings, 1 reply; 12+ messages in thread From: Mikhail Titov @ 2012-08-10 18:54 UTC (permalink / raw) To: Eric Schulte; +Cc: emacs-orgmode Eric Schulte <eric.schulte@gmx.com> writes: >> There is a wonderful post[1] on how to make S-RET to do handy things in >> ESS mode. However I often find myself working on several Org documents >> from different folders. >> >> It is quite inconvenient to change a directory in =*R*= buffer each >> time I work on different document. >> >> Is there a neat way to somehow reuse Org mode property =session= that I >> set buffer wide? >> > > I'm not sure what you mean by "reuse". All of the information for how > to set header arguments in available at (info "(org) Using header > arguments") Here is the outline of what I have and what I'm doing. As I mentioned I set default :session header for R to *R*. In my file I have something like #+PROPERTY: session *Rreport* Whenever I C-c C-c on code block, I can see that *R* buffer was created instead of *Rreport* ! Now, if I edit my code block with C-c ' and hit S-RET on any line, it evaluates in *R* whereas I'd prefer it to be *Rreport* somehow. I understand that I'm trying to somewhat mix ob with plain ESS. Nevertheless I wonder if it is somehow possible. >> Also for some reason >> >> #+PROPERTY: session *Rsomename* >> >> does not override session name set in >> =org-babel-default-header-args:R= even after =C-c C-c= on it when I >> re-evaluate babel code block with =C-c C-c= on code block, while >> explicit block header =:session *Rsomename*= makes difference. >> > > Yes, the order of precedence is > > system-level < buffer/subtree-level < language-level < > code-block-level Then I'd say buffer level does NOT override system-level for some reason. I just re-built Emacs from bzr to make sure I'm running somewhat recent Org. Another weird thing is that when I tried to use Org from git (and not the stock one), Emacs freezes deadly on (org-clock-persistence-insinuate) unless I kill ntvdm.exe with Task Manager (I'm on Windows). But I guess it is a separate story. >> ,----[ snippet from dot emacs ] >> | (setq org-babel-default-header-args:R >> | '((:results . "output") (:session . "*R*"))) >> `---- >> > > Given that (:session . "*R*") will be used by default you could simply > remove it from your custom setting for org-babel-default-header-args. This made a trick. Now indeed I have *Rreport* after C-c C-c on code block. However after C-c ' whenever I attempt to S-RET, yet another *R* is launched every time instead of evaluating a line. So the question perhaps is: How to alter [1] such that when I edit code block with C-c ' , S-RET executes lines in a proper session. I believe all information is in there, I just have no clue how would I extract it, e.g. to which main buffer that code editing buffer (I don't know the right name for it) belongs to, and what session header is set to in that buffer. If there is a way to fetch those, perhaps I'd be able to alter original set up in [1]. >> Footnotes: >> [1] >> http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/ -- Mikhail ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-10 18:54 ` Mikhail Titov @ 2012-08-11 3:37 ` Eric Schulte 2012-08-11 14:33 ` Andrew Young 0 siblings, 1 reply; 12+ messages in thread From: Eric Schulte @ 2012-08-11 3:37 UTC (permalink / raw) To: Mikhail Titov; +Cc: emacs-orgmode >> >> Yes, the order of precedence is >> >> system-level < buffer/subtree-level < language-level < >> code-block-level > > Then I'd say buffer level does NOT override system-level for some > reason. I believe you mean the buffer-level does not override the language-level. > I just re-built Emacs from bzr to make sure I'm running somewhat > recent Org. > > Another weird thing is that when I tried to use Org from git (and not > the stock one), Emacs freezes deadly on > (org-clock-persistence-insinuate) unless I kill ntvdm.exe with Task > Manager (I'm on Windows). But I guess it is a separate story. > I have no idea what could be causing the above, but it seems unrelated. > >>> ,----[ snippet from dot emacs ] >>> | (setq org-babel-default-header-args:R >>> | '((:results . "output") (:session . "*R*"))) >>> `---- >>> >> >> Given that (:session . "*R*") will be used by default you could simply >> remove it from your custom setting for org-babel-default-header-args. > > This made a trick. Now indeed I have *Rreport* after C-c C-c on code > block. However after C-c ' whenever I attempt to S-RET, yet another *R* > is launched every time instead of evaluating a line. > > So the question perhaps is: > > How to alter [1] such that when I edit code block with C-c ' , S-RET > executes lines in a proper session. I believe all information is in > there, I just have no clue how would I extract it, e.g. to which main > buffer that code editing buffer (I don't know the right name for it) > belongs to, and what session header is set to in that buffer. > > If there is a way to fetch those, perhaps I'd be able to alter original > set up in [1]. > You can find the name of the original org-mode buffer by running the following snippet of elisp within the edit buffer. ;; -*- emacs-lisp -*- (marker-buffer org-edit-src-beg-marker) The `org-src-in-org-buffer' macro may be used from an edit buffer to run elisp inside the code block, in the org-mode buffer of the edit buffer. e.g., the following ;; -*- emacs-lisp -*- (org-src-in-org-buffer (message "-->%S" (org-babel-get-src-block-info))) Best, > >>> Footnotes: >>> [1] >>> http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/ -- Eric Schulte http://cs.unm.edu/~eschulte ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-11 3:37 ` Eric Schulte @ 2012-08-11 14:33 ` Andrew Young 2012-08-14 13:17 ` Eric Schulte 0 siblings, 1 reply; 12+ messages in thread From: Andrew Young @ 2012-08-11 14:33 UTC (permalink / raw) To: Mikhail Titov; +Cc: emacs-orgmode Hello All, Well, despite being relatively new to elisp, I've decided to take a crack at one of your problems. I'm not too sure what is causing the strange behaviour of the session property, but I have some thoughts on getting that one function working. Bear with me :-) It seems that for me, the inferior ess process is not being properly associated with the src edit buffer. It is being set correctly by org-babel-R-associate-session, and then being set a second time incorrectly by org-babel-edit-prep:R. Commenting out line 5 in org-babel-edit-prep:R seems to fix this issue, although I'm honestly not sure if or what it breaks. Everything seems ok for me, but ymmv. Heres the change: #+begin_src emacs-lisp (defun org-babel-edit-prep:R (info) (let ((session (cdr (assoc :session (nth 2 info))))) (when (and session (string-match "^\\*\\(.+?\\)\\*$" session)) (save-match-data (org-babel-R-initiate-session session nil)) ;;(setq ess-local-process-name (match-string 1 session))))) ))) #+end_src Is there any one having such issues, or who can weigh in on what exactly is happening here? Without making the above change, it is possible to manually attach an ess process to the current src buffer by using the command: C-c C-s (ess-switch-process) You'll have to specify the process name, rather than the buffer name, and the session must have already been started. From here all ESS functions should work. For example, calling: C-c C-z (ess-switch-to-end-of-ESS) will open the session buffer. I've implemented a variation of the function you mentioned, which uses the inferior process discussed above. It should do something at least remotely like the function you were asking for, and will work with babel sessions, as long as the ess process is associated properly. I've made one change worth mentioning: the function now prompts for a buffer name to set up on if no ess process is associated, instead of only and always using *R*. Try it out, and let me know what you think. Of course feel free to tweak & share! This is my real first dive into lisp, so if anyone has anything to share please do. #+begin_src emacs-lisp (defun my-ess-eval () (interactive) (update-ess-process-name-list) (if (not (ess-make-buffer-current)) ;; Obtain the target ess session (let ((session (read-string "Use session: " (let ((proc (get-process ess-current-process-name))) (if (processp proc) (buffer-name (process-buffer proc))))))) ;; Obtain buffer matching session (if (not (get-buffer session)) ;; If there is no buffer, create a new one (save-excursion (inferior-ess) (rename-buffer session))) (setq ess-local-process-name (process-name (get-buffer-process session))))) (ess-make-buffer-current) (if (and transient-mark-mode mark-active) (call-interactively 'ess-eval-region) (call-interactively 'ess-eval-line-and-step))) (add-hook 'ess-mode-hook '(lambda () (local-set-key [(shift return)] 'my-ess-eval))) (add-hook 'inferior-ess-mode-hook '(lambda () (local-set-key [C-up] 'comint-previous-input) (local-set-key [C-down] 'comint-next-input))) (add-hook 'Rnw-mode-hook '(lambda () (local-set-key [(shift return)] 'my-ess-eval))) (require 'ess-site) #+end_src Sincerely, Andrew Young ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-11 14:33 ` Andrew Young @ 2012-08-14 13:17 ` Eric Schulte 2012-08-14 21:48 ` Mikhail Titov 0 siblings, 1 reply; 12+ messages in thread From: Eric Schulte @ 2012-08-14 13:17 UTC (permalink / raw) To: Andrew Young; +Cc: emacs-orgmode, Mikhail Titov Andrew Young <youngar17@gmail.com> writes: > Hello All, > Hi Andrew, > > Well, despite being relatively new to elisp, I've decided to take a > crack at one of your problems. I'm not too sure what is causing the > strange behaviour of the session property, but I have some thoughts on > getting that one function working. > Thanks for sending this along, unfortunately ob-R.el is currently without a core maintainer, so I'm not sure who on list would have the expertise to review your submission. Although hopefully those experiencing the problem can at least check if it works for them. > > Bear with me :-) > > It seems that for me, the inferior ess process is not being properly > associated with the src edit buffer. It is being set correctly by > org-babel-R-associate-session, and then being set a second time > incorrectly by org-babel-edit-prep:R. Commenting out line 5 in > org-babel-edit-prep:R seems to fix this issue, although I'm honestly > not sure if or what it breaks. Everything seems ok for me, but ymmv. > > Heres the change: > #+begin_src emacs-lisp > (defun org-babel-edit-prep:R (info) > (let ((session (cdr (assoc :session (nth 2 info))))) > (when (and session (string-match "^\\*\\(.+?\\)\\*$" session)) > (save-match-data (org-babel-R-initiate-session session nil)) > ;;(setq ess-local-process-name (match-string 1 session))))) > ))) > #+end_src > Perhaps replacing the commented "setq ess-local-process-name" line with ess-switch-process could solve this problem? Could the process name be found programatically, perhaps using the regexp solution above. > > Is there any one having such issues, or who can weigh in on what > exactly is happening here? > > Without making the above change, it is possible to manually attach an > ess process to the current src buffer by using the command: > > C-c C-s (ess-switch-process) > > You'll have to specify the process name, rather than the buffer name, > and the session must have already been started. From here all ESS > functions should work. For example, calling: > > C-c C-z (ess-switch-to-end-of-ESS) > > will open the session buffer. > > I've implemented a variation of the function you mentioned, which uses > the inferior process discussed above. It should do something at least > remotely like the function you were asking for, and will work with > babel sessions, as long as the ess process is associated > properly. I've made one change worth mentioning: the function now > prompts for a buffer name to set up on if no ess process is associated, > instead of only and always using *R*. > > Try it out, and let me know what you think. Of course feel free to > tweak & share! This is my real first dive into lisp, so if anyone has > anything to share please do. > > #+begin_src emacs-lisp > (defun my-ess-eval () > (interactive) > (update-ess-process-name-list) > (if (not (ess-make-buffer-current)) > ;; Obtain the target ess session > (let ((session > (read-string "Use session: " > (let ((proc (get-process ess-current-process-name))) > (if (processp proc) > (buffer-name (process-buffer proc))))))) > ;; Obtain buffer matching session > (if (not (get-buffer session)) > ;; If there is no buffer, create a new one > (save-excursion > (inferior-ess) > (rename-buffer session))) > (setq ess-local-process-name > (process-name (get-buffer-process session))))) > (ess-make-buffer-current) > (if (and transient-mark-mode mark-active) > (call-interactively 'ess-eval-region) > (call-interactively 'ess-eval-line-and-step))) > > (add-hook 'ess-mode-hook > '(lambda () > (local-set-key [(shift return)] 'my-ess-eval))) > > (add-hook 'inferior-ess-mode-hook > '(lambda () > (local-set-key [C-up] 'comint-previous-input) > (local-set-key [C-down] 'comint-next-input))) > > (add-hook 'Rnw-mode-hook > '(lambda () > (local-set-key [(shift return)] 'my-ess-eval))) > > (require 'ess-site) > > #+end_src > This looks good to me, perhaps it should be added to the Worg page on using R with Org-mode? http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-R.html Thanks, > > Sincerely, > Andrew Young > -- Eric Schulte http://cs.unm.edu/~eschulte ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-14 13:17 ` Eric Schulte @ 2012-08-14 21:48 ` Mikhail Titov 2012-08-14 21:59 ` Bastien 0 siblings, 1 reply; 12+ messages in thread From: Mikhail Titov @ 2012-08-14 21:48 UTC (permalink / raw) To: Eric Schulte; +Cc: Andrew Young, emacs-orgmode Eric Schulte <eric.schulte@gmx.com> writes: > Thanks for sending this along, unfortunately ob-R.el is currently > without a core maintainer Quite a sad situation, many good modules lack maintainers :( >, so I'm not sure who on list would have the expertise to review your >submission. Although hopefully those experiencing the problem can at >least check if it works for them. I'm not an expert but I gave it a shot. >> It seems that for me, the inferior ess process is not being properly >> associated with the src edit buffer. It is being set correctly by >> org-babel-R-associate-session, and then being set a second time >> incorrectly by org-babel-edit-prep:R. Commenting out line 5 in >> org-babel-edit-prep:R seems to fix this issue, although I'm honestly >> not sure if or what it breaks. Everything seems ok for me, but ymmv. >> >> Heres the change: >> #+begin_src emacs-lisp >> (defun org-babel-edit-prep:R (info) >> (let ((session (cdr (assoc :session (nth 2 info))))) >> (when (and session (string-match "^\\*\\(.+?\\)\\*$" session)) >> (save-match-data (org-babel-R-initiate-session session nil)) >> ;;(setq ess-local-process-name (match-string 1 session))))) >> ))) >> #+end_src >> > > Perhaps replacing the commented "setq ess-local-process-name" line with > ess-switch-process could solve this problem? Could the process name be > found programatically, perhaps using the regexp solution above. > >> >> Is there any one having such issues, or who can weigh in on what >> exactly is happening here? >> >> Without making the above change, it is possible to manually attach an >> ess process to the current src buffer by using the command: >> >> C-c C-s (ess-switch-process) >> >> You'll have to specify the process name, rather than the buffer name, >> and the session must have already been started. I would say that after applying changes to my-ess-eval and to org-babel-edit-prep:R as suggested by Andrew, it looks like everything is working right for me. Once I hit C-c ' I see properly named buffer appear with new process. Then if I hit S-RET it asks me what session to use and since I have ido mode, it already highlights proper session name, so I just hit RET. Perhaps it worth recommending to use ido? Note that I do not have to enter process name. If I quite R, while editing code in a separate buffer, and hit S-RET it is executed in the wrong one without any question being asked :( I'm running somewhat recent bzr version of Emacs with default Org in it. -- Mikhail ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-14 21:48 ` Mikhail Titov @ 2012-08-14 21:59 ` Bastien 2012-08-16 21:06 ` Mikhail Titov 0 siblings, 1 reply; 12+ messages in thread From: Bastien @ 2012-08-14 21:59 UTC (permalink / raw) To: Mikhail Titov; +Cc: Andrew Young, emacs-orgmode, Eric Schulte Hi Mikhail, Mikhail Titov <mlt@gmx.us> writes: > I would say that after applying changes to my-ess-eval and to > org-babel-edit-prep:R as suggested by Andrew, it looks like everything > is working right for me. I'v been bold and I pushed the change Andrew suggested. Thanks for reporting this and for testing around -- and thanks to Andrew for the exploration and the fix! -- Bastien ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-14 21:59 ` Bastien @ 2012-08-16 21:06 ` Mikhail Titov 2012-08-17 14:29 ` Eric Schulte 0 siblings, 1 reply; 12+ messages in thread From: Mikhail Titov @ 2012-08-16 21:06 UTC (permalink / raw) To: Bastien; +Cc: Andrew Young, emacs-orgmode, Eric Schulte Bastien <bzg@gnu.org> writes: >> I would say that after applying changes to my-ess-eval and to >> org-babel-edit-prep:R as suggested by Andrew, it looks like everything >> is working right for me. > > I'v been bold and I pushed the change Andrew suggested. > > Thanks for reporting this and for testing around -- and thanks > to Andrew for the exploration and the fix! Though not related to Org, I noticed that ess-make-buffer-current calls (update-ess-process-name-list) thus making a call for it in my-ess-eval, probably, somewhat redundant, right? Another thing that somewhat bugs me is that if R process quits (or probably dies as well) when editing source code block in a separate buffer, the subsequent S-RET will silently execute a line in a wrong buffer/process. If there are no buffers with R process, it will create the default *R* named buffer. It might be exotic but I think it is an issue. Does it mean that there is a bug in ess-make-buffer-current function somewhere? Something, probably, re-associates a buffer to another process, does it? I think it might be relevant that code editing buffer local variable ess-local-process-name is non-nil when associated process quits. This results in first ess-make-buffer-current in my-ess-eval silently launching *R*. I'm not sure if it is too much to fix. Perhaps hitting C-c ' twice to re-start editing is a reasonable workaround. Eric Schulte <eric.schulte@gmx.com> writes: > You can find the name of the original org-mode buffer by running the > following snippet of elisp within the edit buffer. > > ;; -*- emacs-lisp -*- > (marker-buffer org-edit-src-beg-marker) > > The `org-src-in-org-buffer' macro may be used from an edit buffer to run > elisp inside the code block, in the org-mode buffer of the edit buffer. > e.g., the following > > ;; -*- emacs-lisp -*- > (org-src-in-org-buffer (message "-->%S" (org-babel-get-src-block-info))) Where is org-src-in-org-buffer macro defined. Searching all dot el files in org folder does not show anything neither does C-h f show anything similar. -- Mikhail ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-16 21:06 ` Mikhail Titov @ 2012-08-17 14:29 ` Eric Schulte 2012-08-23 22:11 ` Mikhail Titov 0 siblings, 1 reply; 12+ messages in thread From: Eric Schulte @ 2012-08-17 14:29 UTC (permalink / raw) To: Mikhail Titov; +Cc: Bastien, Andrew Young, emacs-orgmode >> >> The `org-src-in-org-buffer' macro may be used from an edit buffer to run >> elisp inside the code block, in the org-mode buffer of the edit buffer. >> e.g., the following >> >> ;; -*- emacs-lisp -*- >> (org-src-in-org-buffer (message "-->%S" (org-babel-get-src-block-info))) > > Where is org-src-in-org-buffer macro defined. Searching all dot el files > in org folder does not show anything neither does C-h f show anything > similar. (describe-function 'org-src-in-org-buffer) shows that org-src-in-org-buffer can be found in org-src.el (line 679 in my version). -- Eric Schulte http://cs.unm.edu/~eschulte ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [babel, ess] How can I make S-RET to be multi-session friendly? 2012-08-17 14:29 ` Eric Schulte @ 2012-08-23 22:11 ` Mikhail Titov 0 siblings, 0 replies; 12+ messages in thread From: Mikhail Titov @ 2012-08-23 22:11 UTC (permalink / raw) To: Eric Schulte; +Cc: Bastien, Andrew Young, emacs-orgmode Another issue I've noticed is that if I save a buffer, that was previously associated with R session, under different name in different folder, then that association is not getting reset and/or overridden by session property of Org buffer. Namely, I had dot R file that I saved in different folder as dot org one while wrapping code in babel blocks and adding session property. I did C-c C-c. I believe there is somewhere a check whether a buffer is associated or not but no check if it is associated with a proper buffer/session. Eric Schulte writes on Fri Aug 17 2012 at 09:29 : >>> >>> The `org-src-in-org-buffer' macro may be used from an edit buffer to run >>> elisp inside the code block, in the org-mode buffer of the edit buffer. >>> e.g., the following >>> >>> ;; -*- emacs-lisp -*- >>> (org-src-in-org-buffer (message "-->%S" (org-babel-get-src-block-info))) >> >> Where is org-src-in-org-buffer macro defined. Searching all dot el files >> in org folder does not show anything neither does C-h f show anything >> similar. > > (describe-function 'org-src-in-org-buffer) shows that > org-src-in-org-buffer can be found in org-src.el (line 679 in my > version). I guess it did not propagate to bzr yet :( I've checked with rev 109760. For some reason I had problems building git version on Windows a while ago and I didn't try since then. -- Mikhail ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-08-23 22:11 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-08-09 18:44 [babel, ess] How can I make S-RET to be multi-session friendly? Mikhail Titov 2012-08-09 19:33 ` Achim Gratz 2012-08-10 12:42 ` Eric Schulte 2012-08-10 18:54 ` Mikhail Titov 2012-08-11 3:37 ` Eric Schulte 2012-08-11 14:33 ` Andrew Young 2012-08-14 13:17 ` Eric Schulte 2012-08-14 21:48 ` Mikhail Titov 2012-08-14 21:59 ` Bastien 2012-08-16 21:06 ` Mikhail Titov 2012-08-17 14:29 ` Eric Schulte 2012-08-23 22:11 ` Mikhail Titov
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).