From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: Multiple (identical) RESULTS blocks of one code block? Date: Tue, 10 Mar 2015 10:35:45 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43194) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVGZy-0006vz-Vu for emacs-orgmode@gnu.org; Tue, 10 Mar 2015 05:36:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVGZw-0003ow-8j for emacs-orgmode@gnu.org; Tue, 10 Mar 2015 05:35:58 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:33613) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVGZv-0003oh-Tp for emacs-orgmode@gnu.org; Tue, 10 Mar 2015 05:35:56 -0400 Received: by widfb4 with SMTP id fb4so17227546wid.0 for ; Tue, 10 Mar 2015 02:35:55 -0700 (PDT) In-Reply-To: (Rainer M. Krug's message of "Tue, 10 Mar 2015 10:06:04 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: John Kitchin Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Rainer M Krug writes: > John Kitchin writes: > >> I don't believe this is possible out of the box. The first RESULTS block >> from the beginning of the buffer will be updated, and not the others. >> >> You might be able to use a hook function to do this, something like: >> >> #+BEGIN_SRC emacs-lisp >> (defun update-results () (interactive) >> ;; get name of src block >> (let ((name (org-element-property :name (org-element-at-point))) >> (results)) >> (when name >> (org-element-map (org-element-parse-buffer) 'fixed-width >> (lambda (object) >> (if results >> ;; replace value in block >> (setf >> (buffer-substring >> (org-element-property :begin object) >> (org-element-property :end object)) >> results) >> ;; set results >> (setq results >> (buffer-substring >> (org-element-property :begin object) >> (org-element-property :end object))))))))) >> #+END_SRC >> #+BEGIN_SRC emacs-lisp >> (add-hook 'org-babel-after-execute-hook 'update-results) >> #+END_SRC >> >> This worked on a small test example, but I did not test it >> thoroughly. your mileage might vary ;) > > This looks nice - I will try it out and see how it goes. I don't get it to work. I put the following into my emacs.org and evaluated it: =2D-8<---------------cut here---------------start------------->8--- (defun rmk/update-multiple-results-blocks () (interactive) ;; get name of src block (let ((name (org-element-property :name (org-element-at-point))) (results)) (when name (org-element-map (org-element-parse-buffer) 'fixed-width (lambda (object) (if results ;; replace value in block (setf (buffer-substring (org-element-property :begin object) (org-element-property :end object)) results) ;; set results (setq results (buffer-substring (org-element-property :begin object) (org-element-property :end object))))))))) #+end_src #+RESULTS: : rmk/update-multiple-results-blocks Add this function to =3Dorg-babel=3Dafter-execute-hook=3D #+begin_src emacs-lisp=20 (add-hook 'org-babel-after-execute-hook 'rmk/update-multiple-results-blocks) #+end_src #+RESULTS: | rmk/update-multiple-results-blocks | =2D-8<---------------cut here---------------end--------------->8--- I am using the following org file to test it: =2D-8<---------------cut here---------------start------------->8--- * The calculation #+NAME: testcode #+begin_src R :session test runif(10) #+end_src * summary of the results First time #+RESULTS: testcode | 0.471471928292885 | | 0.128247044514865 | | 0.398714824113995 | | 0.335577708436176 | | 0.0184990330599248 | | 0.952211205149069 | | 0.367342215497047 | | 0.581879974342883 | | 0.440492485417053 | | 0.0729096119757742 | #+RESULTS: testcode | 0.0095007149502635 | | 0.0898537992034107 | | 0.764667606214061 | | 0.0309854068327695 | | 0.510338442632928 | | 0.220906731439754 | | 0.589271233882755 | | 0.966699115466326 | | 0.0183747289702296 | | 0.734954049577937 | =2D-8<---------------cut here---------------end--------------->8--- But only the first results block is updated. The function =3Drmk/update-multiple-results-blocks=3D is executed. I am using ,---- | Org-mode version 8.3beta (release_8.3beta-884-g9ed426 @ /Users/rainerkrug= /.emacs.d/org-mode/lisp/) | GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0, Carbon Version 157 AppKit 13= 43.16) of 2015-02-02 on Rainers-MacBook-Pro-4.local `---- Any ideas what is going wrong? Thanks, Rainer > > >> >> >> Rainer M Krug writes: >> >>> Hi >>> >>> Consider the following: >>> >>> --8<---------------cut here---------------start------------->8--- >>> * The calculation >>> #+NAME: testcode :exports both >>> #+begin_src R :session test >>> runif(10) >>> #+end_src >>> >>> >>> * summary of the results >>> First time >>> #+RESULTS: testcode :exports both >>> | 0.772744940361008 | >>> | 0.170518629485741 | >>> | 0.0833237133920193 | >>> | 0.149035625392571 | >>> | 0.698798568220809 | >>> | 0.627075897762552 | >>> | 0.177144371205941 | >>> | 0.0476319056469947 | >>> | 0.289851602632552 | >>> | 0.0296813279855996 | >>> >>> * and another >>> testthingy >>> #+RESULTS: testcode :exports both >>> >>> --8<---------------cut here---------------end--------------->8--- >>> >>> If I update the calculation, the first results block is updated, but >>> not the second one. I would like to have two RESULTS blocks which >>> are both updated when the code block is evaluated. >>> >>> Is this possible? >>> >>> Thanks, >>> >>> Rainer >> >> -- >> Professor John Kitchin >> Doherty Hall A207F >> Department of Chemical Engineering >> Carnegie Mellon University >> Pittsburgh, PA 15213 >> 412-268-7803 >> @johnkitchin >> http://kitchingroup.cheme.cmu.edu >> >> =2D-=20 Rainer M. Krug email: Rainerkrugsde PGP: 0x0F52F982 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) iQEcBAEBAgAGBQJU/rr2AAoJENvXNx4PUvmC5kQIANsRGuSP5SISRwWh/7D3LvcD 4/Xwq1Gq992DP0iUB3lRSfKcM77coWy0uwRmo/IsAJXqsf9iXiRjQenMwve0l8V3 ncNzysX6hu76A3PZT+cVyZsAZpCuQDqMtvm1rgtXHnQLxWTHssQGOnRfkj48RFmu g73j5RK1ucCZr1wkVy2hJxmQ+/TVTSBzi6Z62KmuQX1hBOrftb/ZeBO6txuPDZ8E t+4IYeF+wxrHn1n1mLc1Z2ghwRUW+7BlYlFnmeC2bL+mXZeddGpbqrAbRakOk3e+ /ygDBgRskABLe0WhrmFSZjI+jAOi5lcF0+nXR7/LkplpcKE8h8tILyes7dbEPkM= =pKlM -----END PGP SIGNATURE----- --=-=-=--