emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Bernd Weiss <bernd.weiss@uni-koeln.de>
To: Dan Davison <dandavison7@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: [org-babel] Using the power of ESS inside an R source code block
Date: Tue, 26 Oct 2010 20:35:59 -0400	[thread overview]
Message-ID: <4CC773EF.3010202@uni-koeln.de> (raw)
In-Reply-To: <87tyk9f3sb.fsf@gmail.com>

Am 26.10.2010 10:05, schrieb Dan Davison:

[...]

>>> Am 24.10.2010 05:44, schrieb Bernd Weiss:

[...]

>>>> Dear all,
>>>>
>>>> Yesterday, I spent some time (re-)discovering the power of org-babel
>>>> and R. Everything works well but there is one issue that I find
>>>> somewhat annoying (I apologise if this word is too rude).
>
> Not at all. Good to know what drawbacks users are encountering. I'm
> happy to report that all three of the things you mention are now
> possible in the Org buffer. You will need to be using a recent version
> of Org-mode (i.e. from within the last few weeks).


Hi Dan & Eric,

Again (and now on-list), thanks a lot for your reply and your help!


>>>> As a
>>>> long-time ESS user I wish that I could use things like ESS syntax
>>>> highlighting,
>
> This, as Eric mentioned, is turned on with
> `org-src-fontify-natively'. However from your config below it seems you
> have set this variable. So that requires some explanation -- please let
> us know if syntax highlighting in the Org buffer is working for you or
> not.

Yes, syntax highlighting seems to be work as expected.


>>>> indentation
>
> Setting `org-src-tab-acts-natively' causes TAB to have the indenting
> effect that you would get in an ESS buffer.[2]

That also works.

I only have a very (very) basic knowledge of elips. So, I guess it is 
possible to change the "depth" of indentation. The current indentation 
behaviour is as follows:

#+BEGIN_SRC R :results output :exports results
   library(MASS)
   plot(1,1)
   for(i in 1:10){
     print(i)
   }
[...]

However, I would prefer...

#+BEGIN_SRC R :results output :exports results
library(MASS)
plot(1,1)
for(i in 1:10){
   print(i)
}
[...]


> Beyond these two variables, there is a general method that addresses the
> issues you are raising. It involves using the function
> `org-babel-do-key-sequence-in-edit-buffer'. For example, here is how to
> make C-M-\ perform language-specific indentation on the active region in
> the source block:
>
>    (defun dan/org-indent-region ()
>      (interactive)
>      (or (org-babel-do-key-sequence-in-edit-buffer "\C-\M-\\")
>          (indent-region)))
>
>     (define-key org-mode-map "\C-\M-\\" 'dan/org-indent-region)
>
>
>>>> or some keybindings (e.g. for "<-") inside
>>>> an R source code block.
>
> This one can be done with
>
>    (defun dan/org-underscore-command ()
>      (interactive)
>      (or (org-babel-do-key-sequence-in-edit-buffer "_")
>          (org-self-insert-command 1)))
>
>     (define-key org-mode-map "_" 'dan/org-underscore-command)
>
> And another one that you may like is for commenting code:
>
>    (defun dan/org-comment-dwim (&optional arg)
>      (interactive "P")
>      (or (org-babel-do-key-sequence-in-edit-buffer "\M-;")
>          (comment-dwim arg)))
>
>     (define-key org-mode-map "\M-;" 'dan/org-comment-dwim)
>
>
> I hope the above supplies the missing functionality.
>
> Dan


Puh, as I told you I only have a very basic understanding of elisp... If 
I do a simple copy and paste, I see this error: "Symbol's value as 
variable is void: org-mode-map". I also guess that I should change 
"dan/org-underscore-command"...

However, you should not care about my little elips problems. You were 
really helpful in solving my most important problems!

Thanks,

Bernd

  reply	other threads:[~2010-10-27  0:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-24  9:44 [org-babel] Using the power of ESS inside an R source code block Bernd Weiss
2010-10-24 10:12 ` Bernd Weiss
2010-10-25 14:29   ` Eric Schulte
2010-10-26 14:05     ` Dan Davison
2010-10-27  0:35       ` Bernd Weiss [this message]
2010-10-27  7:51         ` Sébastien Vauban
2010-10-27  8:54         ` Dan Davison

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CC773EF.3010202@uni-koeln.de \
    --to=bernd.weiss@uni-koeln.de \
    --cc=dandavison7@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).