Org-mode mailing list
 help / color / mirror / Atom feed
From: Darlan Cavalcante Moreira <darcamo@gmail.com>
To: news1142@Karl-Voit.at
Cc: emacs-orgmode@gnu.org
Subject: Re: Using Org/babel for Emacs config files (was: OT: Learning ELISP)
Date: Wed, 23 Jan 2013 19:06:08 -0300
Message-ID: <51005ed7.04bc650a.65b3.ffffea88@mx.google.com> (raw)
In-Reply-To: <2013-01-23T15-20-19@devnull.Karl-Voit.at>


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 <jonathana@criticalmass.com> 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
> 
> 

  parent reply	other threads:[~2013-01-23 22:06 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-24 14:32 org-time-stamp loses repeater interval Karl Voit
     [not found] ` <devnull@Karl-Voit.at>
2011-06-24 16:01   ` Nick Dokos
2011-06-24 17:40     ` Michael Brand
2011-06-24 18:00       ` Nick Dokos
2011-06-26 11:30       ` Bug: " Karl Voit
2011-06-27 16:23         ` Bastien
2011-06-28 13:40           ` Karl Voit
2011-06-28 14:28             ` Bastien
2011-06-28 15:04               ` Nick Dokos
2011-06-28 15:13               ` Karl Voit
2011-06-28 15:33                 ` Nick Dokos
2011-06-28 16:03                   ` Karl Voit
2011-06-28 15:48                 ` Bastien
2011-06-28 16:05             ` Karl Voit
2011-06-28 17:27               ` Bastien
2011-06-28 18:43                 ` Karl Voit
2011-06-28 23:02                   ` Bastien
2011-06-28 23:10                     ` Nick Dokos
2011-06-28 23:58                       ` Bastien
2011-06-29  1:44                         ` Nick Dokos
2011-06-29  7:28                           ` Sebastien Vauban
2011-06-29  9:30                             ` Bastien
2011-06-29 14:34                             ` Nick Dokos
2011-07-02 13:29                               ` Bastien
2011-06-29 12:47                           ` Karl Voit
2011-07-02 13:26                             ` Bastien
2011-07-02 13:26                           ` Bastien
2011-09-30 15:31   ` How to debug "Specified time is not representable" Nick Dokos
2011-10-18 17:26   ` Recurring events with exceptions Nick Dokos
2011-10-18 20:38     ` Karl Voit
2012-03-16 17:52   ` [bug] org-agenda-write does not handle date stamps without day of week Nick Dokos
2012-03-16 18:53     ` Karl Voit
2012-03-17  6:45   ` Nick Dokos
2012-03-19  9:12     ` Carsten Dominik
2012-03-20  5:54       ` Carsten Dominik
2012-03-20 12:26         ` Karl Voit
2012-03-20 13:47           ` Carsten Dominik
2012-04-10 17:38       ` Bastien
2012-04-10 17:44         ` Nick Dokos
2012-04-10 18:03           ` Bastien
2012-03-20 13:39   ` Nick Dokos
2012-03-21 16:32     ` Karl Voit
2012-03-21 16:57       ` Carsten Dominik
2012-03-26 16:10   ` Plotting (with gnuplot) using dates timestamps Nick Dokos
2012-08-13 22:27   ` table: referencing row of other table Nick Dokos
2012-08-13 22:44     ` Karl Voit
2012-08-19 12:32   ` What HW/SW issues influence org/Emacs performance? Nick Dokos
2012-08-19 13:04     ` Karl Voit
2012-08-20 17:23   ` Replacement for org-make-link Nick Dokos
2012-08-20 17:54     ` Bastien
2012-08-20 19:29       ` Karl Voit
2012-08-27 16:09   ` comma as decimal point: bug? Nick Dokos
2012-08-27 16:17     ` Karl Voit
2013-01-18 14:07   ` Wish: switch active time-stamps to inactive when CANCELED Nick Dokos
2013-01-18 21:24     ` Karl Voit
2013-01-18 21:59   ` Nick Dokos
2013-01-20 16:05     ` Karl Voit
2013-01-20 18:16       ` Viktor Rosenfeld
2013-01-21 10:18     ` Memnon Anon
2013-01-21 11:39       ` OT: Learning ELISP (was: Wish: switch active time-stamps to inactive when CANCELED) Karl Voit
2013-01-21 21:56         ` OT: Learning ELISP Jonathan Arkell
2013-01-23 14:40           ` Using Org/babel for Emacs config files (was: OT: Learning ELISP) Karl Voit
2013-01-23 15:52             ` Using Org/babel for Emacs config files David Bjergaard
2013-01-23 22:06             ` Darlan Cavalcante Moreira [this message]
2013-01-23 22:32               ` Using Org/babel for Emacs config files (was: OT: Learning ELISP) Kyle Machulis
2013-01-24 13:27                 ` [OT] open url in emacs was: Re: Using Org/babel for Emacs config files Andreas Leha
2013-01-24 13:29                   ` Bastien
2013-01-24 14:13                     ` Andreas Leha
2013-01-24 15:19                       ` Bastien
2013-01-24 19:48                         ` Andreas Leha
2013-01-25  4:48                         ` Jambunathan K
2013-01-26  8:34                           ` Andreas Leha
2013-01-26 13:05                             ` Jambunathan K
2013-01-28  9:41                               ` Andreas Leha
2013-01-24 15:18                   ` Daimrod
2013-01-24  1:04             ` Thorsten Jolitz
2013-01-24  1:33               ` Thomas S. Dye
2013-01-24  8:42                 ` Thorsten Jolitz
2013-01-24 11:36               ` full outline functionality in .el files: how? (was: Re: Using Org/babel for Emacs config files) Gregor Zattler
2013-01-24 12:48                 ` full outline functionality in .el files: how? Bastien
2013-01-24 13:40                   ` Thorsten Jolitz
2013-01-24 13:46                     ` Bastien
2013-01-24 14:17                       ` Thorsten Jolitz
2013-01-24 15:57                         ` Bastien
2013-01-24 13:36                 ` Thorsten Jolitz
2013-01-25 18:08                 ` Memnon Anon
2011-06-24 16:08 ` org-time-stamp loses repeater interval Bernt Hansen
2011-09-30 14:32 How to debug "Specified time is not representable" Karl Voit
2011-09-30 14:52 ` Jambunathan K
2011-10-03 11:50   ` Karl Voit
2011-10-04  7:40     ` Jambunathan K
2011-10-04 11:42       ` Karl Voit
2011-10-04 12:13         ` Carsten Dominik
2011-10-04 11:41     ` Carsten Dominik
2011-10-04 11:47       ` Karl Voit
2011-10-18 16:52 Recurring events with exceptions Karl Voit
2011-10-18 17:04 ` Brian Wightman
2011-10-18 17:35   ` Karl Voit
2011-10-18 18:15   ` Skip Collins
2011-10-18 18:46     ` Tassilo Horn
2011-10-18 19:57     ` Eric S Fraga
2011-10-19  0:34       ` Skip Collins
2011-10-19 10:02         ` Eric S Fraga
2011-10-21 21:48           ` Skip Collins
2011-10-22  8:38             ` Sync with Outlook/Exchange (was: Recurring events with exceptions) Karl Voit
2011-10-24  7:13             ` Recurring events with exceptions Eric S Fraga
2012-03-05 14:44 [bug] org-agenda-write does not handle date stamps without day of week Karl Voit
2012-03-16 16:14 ` Karl Voit
2012-03-17 14:04 ` Simon Thum
2012-03-19  9:13   ` Carsten Dominik
2012-03-26 13:37 Plotting (with gnuplot) using dates timestamps Alan Schmitt
2012-03-26 14:00 ` Allen S. Rout
2012-03-26 14:06 ` Michael Brand
2012-03-26 14:07 ` Steven Buczkowski
     [not found]   ` <steven.buczkowski@gmail.com>
2012-03-26 14:37     ` Nick Dokos
2012-03-26 14:59       ` Alan Schmitt
2012-03-26 15:48         ` Karl Voit
2012-03-26 17:02           ` Alan Schmitt
2012-03-26 17:06             ` Karl Voit
2012-03-26 17:11               ` Ian Barton
2012-03-27  7:59                 ` Karl Voit
2012-03-30  1:09 ` Mueen Nawaz
2012-08-13 21:50 table: referencing row of other table Karl Voit
2012-08-19 10:56 What HW/SW issues influence org/Emacs performance? Karl Voit
2012-08-19 11:23 ` Achim Gratz
2012-08-19 16:45 ` Luis Anaya
2012-08-20 17:03 Replacement for org-make-link Karl Voit
2012-08-26 13:54 comma as decimal point: bug? Rainer Thiel
2012-08-26 20:57 ` Nicolas Goaziou
2012-08-26 21:05   ` Bastien
2012-08-26 21:08     ` Nicolas Goaziou
2012-08-27 16:19       ` Bastien
2012-08-27 15:44   ` Karl Voit
2012-08-26 20:59 ` Bastien
2012-08-27  9:08   ` Rainer Thiel
2012-08-27 12:30     ` AW
2013-01-18 10:34 Wish: switch active time-stamps to inactive when CANCELED Karl Voit
2013-01-18 11:04 ` Daimrod
2013-01-18 11:08   ` Karl Voit
2013-01-18 11:24     ` Daimrod
2013-01-18 21:22       ` Karl Voit
2013-01-18 21:59         ` Viktor Rosenfeld
2013-01-18 22:50           ` Daimrod
2013-01-20 15:39           ` Karl Voit
2013-01-23 13:18           ` Bastien
2013-01-23 17:21             ` Viktor Rosenfeld
2013-01-24 14:11               ` Bastien
2013-01-18 23:10 ` Samuel Wales
2013-01-26 11:06 ` Bastien

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://orgmode.org

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

  git send-email \
    --in-reply-to=51005ed7.04bc650a.65b3.ffffea88@mx.google.com \
    --to=darcamo@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=news1142@Karl-Voit.at \
    /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

Org-mode mailing list

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://orgmode.org/list/0 list/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 list list/ https://orgmode.org/list \
		emacs-orgmode@gnu.org
	public-inbox-index list

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.yhetil.org/yhetil.emacs.orgmode
	nntp://news.gmane.io/gmane.emacs.orgmode


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git