Org-mode mailing list
 help / color / Atom feed
From: Kyle Machulis <kyle@nonpolynomial.com>
To: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Using Org/babel for Emacs config files (was: OT: Learning ELISP)
Date: Wed, 23 Jan 2013 14:32:11 -0800
Message-ID: <CAF1EFceYJLhCDrayM14nZW6Zquyum_w4UfLWev9kHW31pjheeQ@mail.gmail.com> (raw)
In-Reply-To: <51005ed7.04bc650a.65b3.ffffea88@mx.google.com>

Building on these idea, eric schulte's emacs 24 starter kit actually
uses tags to configure what should and shouldn't be tangled, to make
things easily configurable by others (not really a feature most of us
are looking for in configs, but interesting nonetheless). Check out
the starter-kit-load function in
https://raw.github.com/eschulte/emacs24-starter-kit/master/starter-kit.org

On Wed, Jan 23, 2013 at 2:06 PM, Darlan Cavalcante Moreira
<darcamo@gmail.com> wrote:
>
> 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
>>
>>
>

  reply index

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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     ` Using Org/babel for Emacs config files (was: OT: Learning ELISP) Darlan Cavalcante Moreira
2013-01-23 22:32       ` Kyle Machulis [this message]
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
  -- strict thread matches above, loose matches on Subject: below --
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
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
2012-08-20 17:03 Replacement for org-make-link 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-13 21:50 table: referencing row of other table Karl Voit
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-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
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
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-06-07 15:55 Referencing elemts of a table Karl Voit
2011-06-07 17:22 ` Michael Brand
2011-06-08  0:05   ` kinouchou
2011-06-08  3:54     ` Jambunathan K
2011-06-08  4:25     ` Nick Dokos
2011-06-08 12:49   ` Karl Voit
2011-06-08 13:47     ` Michael Brand
     [not found]     ` <devnull@Karl-Voit.at>
2011-06-08 13:49       ` Nick Dokos
2011-06-24 14:32       ` org-time-stamp loses repeater interval Karl Voit
2011-06-24 16:08         ` Bernt Hansen
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

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=CAF1EFceYJLhCDrayM14nZW6Zquyum_w4UfLWev9kHW31pjheeQ@mail.gmail.com \
    --to=kyle@nonpolynomial.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

Org-mode mailing list

Archives are clonable:
	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