emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Using Org/babel for Emacs config files (was: OT: Learning ELISP)


From: Darlan Cavalcante Moreira
Subject: Re: [O] Using Org/babel for Emacs config files (was: OT: Learning ELISP)
Date: Wed, 23 Jan 2013 19:06:08 -0300
User-agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/24.3 Mule/6.0 (HANACHIRUSATO)

I also have my Emacs configuration in org mode and it is really great.
Before moving to an org-mode initialization file I had multiple elisp files
and the main initialization file loaded the individual files. But having
everything in one place with the outline and search powers of org-modemuch
better. You can even put todos there if you want.

There are many benefits of using tags in your initialization. You can, for
instance, put a "Keybinds" tag in all headlines that change some
keybindings. You can put a "Flymake" tag in all headlines configuring
flymake for the different programming languages you use. If you need to
locate the flymake configuration specific for python, for instance, all
that is necessary is to do a tag search for the Flymake and Python tags.

Note that Emacs does not evaluate your initialization org-mode file
directly. It tangles all elisp blocks in that file to an elisp file and
then load that elisp file as usual. The tangling can be slow if you have
many blocks, but it only does that once after editing the org-mode
file. Therefore, you don't get a performance hit by having your
initialization in an org-mode file.

You can also take advantage of this tangle process. For instance, I have a
"Themes" headline where each child headline configures Emacs with a
different theme. I set the TANGLE property of all of these headlines to
"no" except one. Then Emacs will use that theme. You can easily
enable/disable big parts of your configuration like this and I find it
easier then commenting and uncommenting different parts of an elisp
file. For visual feedback, I like to add the COMMENT keyword in the
headlines where I have set the TANGLE property to no.

--
Darlan

At Wed, 23 Jan 2013 15:40:35 +0100,
Karl Voit wrote:
> 
> Hi!
> 
> * Jonathan Arkell <address@hidden> wrote:
> > I am a huge advocate of using org files and literate programming in your
> > config files.
> 
> Great.
> 
> I am not completely convinced to convert my config to org/babel but
> I am not oppose either. Not sure, if there are that many advantages,
> that it is worth my effort, that's all.
> 
> > A few reasons why:
> >   - Makes it easy to logically group sections of your init and
> > configuration
> 
> Well, this is also possible with pure elisp and comments. Folding is
> a different topic tough.
> 
> >   - Agenda tags search on your initialization file?  Yes please!
> > Extremely useful for those "cross-cutting" bits.  I have tags like
> > "keybinding", "osx" and "linux", and working on others as appropriate.
> 
> Hm. Interesting but I guess this is not my use-case (except for
> :keybinding:). I do use "(when (system-is-linux) ... )" and similar
> all over my configuration.
> 
> Although I am a huge fan of tagging, I don't see the use when
> editing my emacs config (yet).
> 
> >   - Add TODOs to your init file.
> 
> I am using ~/org/mainfile.org -> "* shorts" -> "** TODO do this
> :hostname:" all the time. Also for my config tasks. No worries: I do
> see your point but I like to have all my sysadmin-tasks combined in
> "mainfile.org/shorts". So maybe this is just me.
> 
> > Here is my example, but I stand on the shoulders of giants:
> >
> > https://github.com/jonnay/emagicians-starter-kit
> 
> Thanks for sharing!
> 
> One thing which I would appreciate would be that it is more easy to
> write documentation (including URLs; outside of elisp sections) in
> org.
> 
> 
> Naive question: Are there any performance issues with not being able
> to compile my config.org to config.elc as it is possible with
> config.el files?
> 
> -- 
> Karl Voit
> 
> 



reply via email to

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