From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kyle Machulis Subject: Re: Using Org/babel for Emacs config files (was: OT: Learning ELISP) Date: Wed, 23 Jan 2013 14:32:11 -0800 Message-ID: References: <2013-01-21T12-04-57@devnull.Karl-Voit.at> <2013-01-23T15-20-19@devnull.Karl-Voit.at> <51005ed7.04bc650a.65b3.ffffea88@mx.google.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: Received: from eggs.gnu.org ([208.118.235.92]:52762) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ty8rj-0000kn-Jt for emacs-orgmode@gnu.org; Wed, 23 Jan 2013 17:32:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ty8rc-000226-RC for emacs-orgmode@gnu.org; Wed, 23 Jan 2013 17:32:19 -0500 Received: from mail-vb0-f44.google.com ([209.85.212.44]:60132) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ty8rc-00021s-Mb for emacs-orgmode@gnu.org; Wed, 23 Jan 2013 17:32:12 -0500 Received: by mail-vb0-f44.google.com with SMTP id fc26so3811962vbb.31 for ; Wed, 23 Jan 2013 14:32:11 -0800 (PST) In-Reply-To: <51005ed7.04bc650a.65b3.ffffea88@mx.google.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode 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 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 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 >> >> >