From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Where does org-mode elisp hacking go? Date: Thu, 14 Mar 2013 13:57:02 -0600 Message-ID: <87ppz1da97.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:58763) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UGEIL-00013t-Kl for emacs-orgmode@gnu.org; Thu, 14 Mar 2013 15:58:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UGEIH-0005qN-25 for emacs-orgmode@gnu.org; Thu, 14 Mar 2013 15:58:33 -0400 Received: from mail-pb0-f42.google.com ([209.85.160.42]:53891) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UGEIG-0005qG-RN for emacs-orgmode@gnu.org; Thu, 14 Mar 2013 15:58:28 -0400 Received: by mail-pb0-f42.google.com with SMTP id xb4so2715345pbc.15 for ; Thu, 14 Mar 2013 12:58:27 -0700 (PDT) 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: Torsten Wagner Cc: Org Mode Mailing List , Charles Berry Torsten Wagner writes: > Hi, > > if I have a project based on org which require some special settings (not > only in lisp) I use a babel block and execute it after loading the file. I > did this e.g. to set my Java environment correct > > If I remember correctly, we discussed once an autoload feature for > org-babel, but security concerns overruled that idea. > If some autoload feature should ever land in the repro, one would have to > make sure that the code can't be manipulated e.g. by an external editor. > This would come close to creating org-babel-viruses ;) > > One possible idea which jumps just to my mind, how about a combination of a > babel blocks and org-encrypt? > Encrypted babel blocks with a certain tag could be considered save for > execution immediately after the user authentication during loading a > certain buffer. I guess most of the functionality (tag, encryption, > block-execution) is there already, it just would need some glue to put it > together and a hook into opening of org-mode files > > Hmmm..... I think I put Eric CC :) > Sounds dangerous to me. I often place init.el files into sub-directories which require project specific customization. You may also want to look at (info "(elisp)Directory Local Variables") for adding setting based on the working directory. > > > Other then this I have a .init.el which simply loads many other lisp files, > one of them is init_org.el Maybe the methods used here [1] may provide inspiration. > > If you frighten that emacs start-up might be to much delayed you might > want to check the daemon / emcasclient feature of emacs. > Indeed, I've recently fully committed to this approach adding Emacs to the list of services started by my OS during boot (probably overkill for most users and configurations). Cheers, > > All the best > Torsten > > > > > On 13 March 2013 23:38, Charles Berry wrote: > >> Lawrence Bottorff gmail.com> writes: >> >> > >> > >> >> > I see on the org-hacks.html page lots of interesting elisp code. >> >> > If I wanted to use some of this (lots of this) it seems wrong to shove it >> > all in my .emacs file. My first guess would be to put what I want into >> > separate .el files, go to my .org file and do a load-file on the .el file >> > of hacks. But I really loath doing something that's not "best practice." >> > What's the best practice for enabling org-mode elisp hacks? And what if >> > I want to use just one hack for one project? With usual elisp-ing you can >> > simply evaluate region. Is that possible in conjunction with a .org >> file? >> >> >> Yes. But you might like to look at >> >> http://orgmode.org/worg/org-contrib/babel/intro.html#sec-8-2-1 >> >> which discusses "Emacs Initialization with Babel" for a comprehensive >> approach. >> >> For a single project, you can but a src_block in the master that loads >> whatever is needed or use a file local variables block to load up the >> requisites. >> See: Specifying File Variables in the emacs manual. >> >> >> >> Footnotes: [1] http://github.com/eschulte/emacs24-starter-kit -- Eric Schulte http://cs.unm.edu/~eschulte