emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Folding in iESS R buffer


From: Rainer M Krug
Subject: Re: [O] Folding in iESS R buffer
Date: Tue, 27 May 2014 14:13:20 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin)

Thorsten Jolitz <address@hidden> writes:

> Rainer M Krug <address@hidden> writes:
>
>> Rainer M Krug <address@hidden> writes:
>>
>>> Thorsten Jolitz <address@hidden> writes:
>>>
>>>> Rainer M Krug <address@hidden> 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. 

I changed it in the buffer, so that it now reads:

,----
| > 
| ## * Variable Transfer from org
| ##########################################################
| ## org:variables environment created and in search path
| ##########################################################
| 
| ## * Back to normal code
| here it is @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
| > > 
`----

but the folding still results in

,----
| > 
| ## * Variable Transfer from org
| ##########################################################...
| here it is @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
| > > 
`----

If it helps, here is the buffer:

,----
| R version 3.1.0 (2014-04-10) -- "Spring Dance"
| Copyright (C) 2014 The R Foundation for Statistical Computing
| Platform: x86_64-apple-darwin13.1.0 (64-bit)
| 
| R is free software and comes with ABSOLUTELY NO WARRANTY.
| You are welcome to redistribute it under certain conditions.
| Type 'license()' or 'licence()' for distribution details.
| 
|   Natural language support but running in an English locale
| 
| R is a collaborative project with many contributors.
| Type 'contributors()' for more information and
| 'citation()' on how to cite R or R packages in publications.
| 
| Type 'demo()' for some demos, 'help()' for on-line help, or
| 'help.start()' for an HTML browser interface to help.
| Type 'q()' to quit R.
| 
| During startup - Warning messages:
| 1: Setting LC_CTYPE failed, using "C" 
| 2: Setting LC_COLLATE failed, using "C" 
| 3: Setting LC_TIME failed, using "C" 
| 4: Setting LC_MESSAGES failed, using "C" 
| 5: Setting LC_MONETARY failed, using "C" 
| > > options(STERM='iESS', str.dendrogram.last="'", editor='emacsclient', 
show.error.locations=TRUE)
| > 
| ## * Variable Transfer from org
| ##########################################################
| ## org:variables environment created and in search path
| ##########################################################
| 
| ## * Back to normal code
| here it is @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
| > > 
`----

I figured it out:

The problems are the comment lines - if I delete these, it is
working.

I can work around this.

Cheers and thanks,

Rainer

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

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      address@hidden

Skype:      RMkrug

PGP: 0x0F52F982

Attachment: pgpUyILCIpS1p.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]