From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thorsten Jolitz Subject: Re: Folding in iESS R buffer Date: Tue, 27 May 2014 11:43:14 +0200 Message-ID: <87tx8bzhe5.fsf@gmail.com> References: <87d2ez1vjq.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:32986) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WpDux-0008AW-VB for emacs-orgmode@gnu.org; Tue, 27 May 2014 05:43:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WpDus-0006ht-Bo for emacs-orgmode@gnu.org; Tue, 27 May 2014 05:43:35 -0400 Received: from plane.gmane.org ([80.91.229.3]:53701) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WpDus-0006hj-1X for emacs-orgmode@gnu.org; Tue, 27 May 2014 05:43:30 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WpDun-00087c-Ef for emacs-orgmode@gnu.org; Tue, 27 May 2014 11:43:25 +0200 Received: from e178190143.adsl.alicedsl.de ([85.178.190.143]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 27 May 2014 11:43:25 +0200 Received: from tjolitz by e178190143.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 27 May 2014 11:43:25 +0200 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: emacs-orgmode@gnu.org Rainer M Krug writes: > Rainer M Krug writes: > >> Thorsten Jolitz writes: >> >>> Rainer M Krug writes: >>> >>> Hi Rainer, >>> >>> sorry for the late reply, I was offline some time. >> >> No problem. >> >>> >>>> I have modified the variable transfer in ob-R.el so that the variable >>>> transfer code is enclosed as can be seen below. >>>> >>>> My idea is that I can fold the R output so that the variable >>>> transfer is >>>> collapsed. I understand that I can use one of the org-outside-org minor >>>> modes [1] (presumibly utshine?) - but I can't figure out how. >>>> >>>> My questions are: >>>> >>>> 1) which enclosing should I use to fold the transfer code away? >>> >>> Outshine is like Org, no enclosing, but file structuring with >>> (outcommented) headlines. >> >> So everything after the outcommented headline will be folded - so if I >> only want to fold one part, I have to use >> >> ,---- >> | ## * If this is folded >> | SOME R CODE >> | ## * This not anymore >> | SOME R CODE >> `---- >> >> which I could fold to >> >> ,---- >> | ## * If this is folded [...] >> | ## * This not anymore >> | SOME R CODE >> `---- >> >> correct? > > I just tried it, and get the following: > > Unfolded: > > ,---- > | > > | + . + ## * Variable Transfer from org > | ########################################################## > | ## org:variables environment created and in search path > | ########################################################## > | > | ## * Back to normal code > | here it is @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ > | > > > `---- > > where "here it is @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" is output > From normal R code in a source block evaluated. > > Folded: > > ,---- > | > > | + . + ## * Variable Transfer from org > | ##########################################################... > | here it is @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ > | > > > `---- > > Is this what is expected? no, it should look just like a folded subtree in Org-mode. The problem is probably this ,-------------------------------------- | + . + ## * Variable Transfer from org `-------------------------------------- because in outshine, just like in Org, a header must (!) start at the beginning of line to be recognized. Or is the comment syntax wrong for R-mode? Is it only ,------------- | # * Level 1 `------------- ? I can't check right now, you can try it out by writing an Org header in an R buffer and then call M-x comment-region on the marked line. Maybe I got confused because PicoLisp uses ## for comments ... >>>> 2) which minor mode should I use for this and how can I configure it? >>> >>> I'm not sure if I understand. When you use ob-R.el, you work in Org >>> files with R source blocks, right? >> >> Correct. >> >>> When do you want to fold the R output below? When you are in org-mode >>> or when editing source blocks in R-mode? >> >> The evaluated code - not in the source code. >> >>> >>> In the former case, Org-mode is in charge and you don't need >>> outshine. >> >> True. >> >>> In the latter case, you could install outshine as described in the >>> docs and then add outline-minor-mode to the ESS/R mode hook, i.e. >> >> That's it. >> >>> >>> ,------------------------------------------------------------------------------- >>> | ;; outline >>> | (when (require 'outline nil t) >>> | (add-hook 'ess-mode-hook 'outline-minor-mode)) ; is that the >>> | hook for R-mode? >>> | >>> | ;; outshine >>> | (when (require 'outshine nil t) >>> | (add-hook 'outline-minor-mode-hook 'outshine-hook-function) >>> | (setq outshine-use-speed-commands t)) >>> `------------------------------------------------------------------------------- >>> >>> Outshine headlines are outcommented Org headlines, i.e. >>> >>> ,---------------------------------- >>> | * Beginning org variable transfer >>> `---------------------------------- >>> >>> becomes >>> >>> ,---------- >>> | ## * Beginning org variable transfer >>> `---------- >>> >>> in R-mode. >>> >>> The R output would become an outshine-subtree with the header above, >>> just like in Org-mode, possibly surrounded by other subtrees. >> >> Sounds great - thanks a lot. I will try it out, >> >> Rainer >> >>> >>>> --8<---------------cut here---------------start------------->8--- >>>>> ###################################################################### >>>> ## Beginning org variable transfer >>>> try(detach(.org_variables_), silent=TRUE) >>>> .org_variables_ <- new.env() >>>> assign( 'COLUMNS', read.table("/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-74428N93/R-import-74428U4A", header=TRUE, row.names=1, sep="\t", as.is=TRUE ), envir = .org_variables_ ); lockBinding('COLUMNS', .org_variables_) >>>> assign( 'COLS_TO_EVAL', read.table("/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-74428N93/R-import-74428hCH", header=TRUE, row.names=1, sep="\t", as.is=TRUE ), envir = .org_variables_ ); lockBinding('COLS_TO_EVAL', .org_variables_) >>>> assign( 'ALLSPECIES', read.table("/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-74428N93/R-import-74428uMN", header=TRUE, row.names=1, sep="\t", as.is=TRUE ), envir = .org_variables_ ); lockBinding('ALLSPECIES', .org_variables_) >>>> assign( 'SPECIES', read.table("/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-74428N93/R-import-744287WT", header=TRUE, row.names=1, sep="\t", as.is=TRUE ), envir = .org_variables_ ); lockBinding('SPECIES', .org_variables_) >>>> assign( 'YEARS', read.table("/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-74428N93/R-import-74428IhZ", header=TRUE, row.names=1, sep="\t", as.is=TRUE ), envir = .org_variables_ ); lockBinding('YEARS', .org_variables_) >>>> assign('PRESENT', 2008, envir = .org_variables_); lockBinding('PRESENT', .org_variables_) >>>> assign('MINEFFORT', 3, envir = .org_variables_); lockBinding('MINEFFORT', .org_variables_) >>>> assign('PROPTRAIN', 0.6, envir = .org_variables_); lockBinding('PROPTRAIN', .org_variables_) >>>> assign('RNGSEED', 13, envir = .org_variables_); lockBinding('RNGSEED', .org_variables_) >>>> assign('RNGKIND', "Mersenne-Twister", envir = .org_variables_); lockBinding('RNGKIND', .org_variables_) >>>> assign('RNGNORMALKIND', "Inversion", envir = .org_variables_); lockBinding('RNGNORMALKIND', .org_variables_) >>>> assign('REFGRID', "./refGrid_8km.rds", envir = .org_variables_); lockBinding('REFGRID', .org_variables_) >>>> assign('IFN', "./__BOX__/IFN/DB_IFN/rds/tabplot.rds", envir = .org_variables_); lockBinding('IFN', .org_variables_) >>>> assign('IFNCOUNT', "./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.count.8km.rds", envir = .org_variables_); lockBinding('IFNCOUNT', .org_variables_) >>>> assign('IFNMEAN', "./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.mean.8km.rds", envir = .org_variables_); lockBinding('IFNMEAN', .org_variables_) >>>> assign('IFNPRES', "./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.pres.8km.rds", envir = .org_variables_); lockBinding('IFNPRES', .org_variables_) >>>> assign('IFNSD', "./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.sd.8km.rds", envir = .org_variables_); lockBinding('IFNSD', .org_variables_) >>>> assign('IFNTABTREE', "./__BOX__/IFN/DB_IFN/rds/tabtree.rds", envir = .org_variables_); lockBinding('IFNTABTREE', .org_variables_) >>>> lockEnvironment(.org_variables_) >>>> attach(.org_variables_) >>>> save(.org_variables_, file='org_variables.RData') >>>> ## end org variable transfer >>>> ###################################################################### >>>> --8<---------------cut here---------------end--------------->8--- >>>> >>>> >>>> Footnotes: >>>> [1] http://orgmode.org/worg/org-tutorials/org-outside-org.html -- cheers, Thorsten