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

Bernd Weiss <bernd.weiss@uni-koeln.de> writes:

[...]

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

Hi Bernd,

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

This should do that:

(setq org-edit-src-content-indentation 0)

Note that even if that variable has a value greater than zero, the
initial spaces are automatically removed when you go to the edit buffer
with C-c ', and also in tangled output.

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

[...]

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

That doesn't seem right. The above code needs to be evaluated /after/
Org-mode has loaded. But, once Org is loaded, that variable should
exist. For example, you should be able to call up the documentation for
the variable using

C-h v org-mode-map RET

Or alternatively, place the cursor immediately after the "p" of map, and
use C-x C-e to see the value displayed in the minibuffer. Do those work
for you?

How are you evaluating the above code? If you are putting it in your
.emacs and restarting emacs, then make sure it is after the part that
loads Org-mode. As a test, you could also try evaluating it with emacs
and Org-mode running: to evaluate an expression, place the cursor
immediately after the final parenthesis and use C-x C-e.

> I also guess that I should
> change "dan/org-underscore-command"...

As long as the names used in the function definition [the expression
starting "(defun ..."] match the names used in the corresponding
define-key expression then it'll be OK. There's no problem leaving the
names as they are. It tends to be a good idea to reserve names starting
with org- for things that are officially part of Org-mode.

Dan

>
> However, you should not care about my little elips problems. You were
> really helpful in solving my most important problems!
>
> Thanks,
>
> 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

      parent reply	other threads:[~2010-10-27  8:55 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
2010-10-27  7:51         ` Sébastien Vauban
2010-10-27  8:54         ` Dan Davison [this message]

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=87r5fc6mnd.fsf@gmail.com \
    --to=dandavison7@gmail.com \
    --cc=bernd.weiss@uni-koeln.de \
    --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).