emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Dan Davison <dandavison7@gmail.com>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: Bernd Weiss <bernd.weiss@uni-koeln.de>, emacs-orgmode@gnu.org
Subject: Re: [org-babel] Using the power of ESS inside an R source code block
Date: Tue, 26 Oct 2010 15:05:08 +0100	[thread overview]
Message-ID: <87tyk9f3sb.fsf@gmail.com> (raw)
In-Reply-To: <87r5feuz0y.fsf@gmail.com> (Eric Schulte's message of "Mon, 25 Oct 2010 08:29:01 -0600")

"Eric Schulte" <schulte.eric@gmail.com> writes:

> Hi Bernd,
>
> It seems that you have already found the best solution in the indirect
> edit buffers (by calling C-c ' from inside of a code block).  I would
> only add that in the email you mentioned below, I was specifically
> talking about syntax highlighting of R code in Org-mode buffers, which
> at the time I believed was not possible.  It would seem I was wrong, as
> such syntax highlighting is now implemented in recent versions of
> Org-mode through setting the `org-src-fontify-natively' variable.
>
> Hope you enjoy using Org-mode with Ess.
>
> Best -- Eric
>
> Bernd Weiss <bernd.weiss@uni-koeln.de> writes:
>
>> Am 24.10.2010 05:44, schrieb Bernd Weiss:

Hi Bernd,

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

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

>>> indentation 

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

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

>>> However, with respect to an e-mail from Eric
>>> Schulte
>>>
>>> http://www.mail-archive.com/emacs-orgmode@gnu.org/msg22301.html
>>>
>>> (or this one:
>>> https://stat.ethz.ch/pipermail/ess-help/2009-September/005544.html )
>>>
>>> this seems to be a feature wich is hard to realise inside org-babel.
>>> Is this (still) correct? Or is it a problem with my
>>> installation/initialisation of org-mode/org-babel?[1]
>>
>>
>> Ok, one workaround are indirect buffers, right? This blog post is
>> really helpful (see "A note about syntax highlighting in Emacs")
>>
>> http://blogisticreflections.wordpress.com/2010/05/23/introduction-to-using-r-with-org-babel-part-1/
>>
>> Bernd
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2010-10-26 14:05 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 [this message]
2010-10-27  0:35       ` Bernd Weiss
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=87tyk9f3sb.fsf@gmail.com \
    --to=dandavison7@gmail.com \
    --cc=bernd.weiss@uni-koeln.de \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@gmail.com \
    /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).