emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Navigating org-mode customization file


From: John Hendy
Subject: Re: [O] Navigating org-mode customization file
Date: Sun, 12 Jan 2014 16:48:20 -0600

On Sun, Jan 12, 2014 at 11:42 AM, Oleh <address@hidden> wrote:
> Hi all,
>
> I'd like to share a small hack that might be useful for people that edit their
> org config a lot. Mine is more than 500 lines.
> A great way to jump about a source file is `helm-semantic'.
> But it only allows to jump to function and variable definition within
> current file.
> My org file is full of `setq' statements which it doesn't see.
>
> For instance, today I wanted to navigate to `org-capture-templates'.
> isearch with "cap" entered gives me 15 positions, 14 of them false.
> The new function that I wrote, `lispy-goto',
> gives 2 results: (setq org-capture-templates...) and (require 'org-capture).
> It uses semantic - a built-in package and helm - a popular completion package.
>
> Another example, `lispy-goto' with "loca" instead of 11 candidates of isearch
> gives (setq org-archive-location...) and (setq system-time-locale...).
>
> Anyway, maybe it's useful for at least one more person other than me.
> The code is at https://github.com/abo-abo/lispy, as well as "lispy" in MELPA.
> It's not necessary to enable `lispy-mode' to call `lispy-goto' with M-x.
> However, if it's enabled, the shortcut is "g" when point is positioned
> before "(" or after ")" in the code.
>

Thanks for sharing, and sounds quite interesting. Just wanted to
mention the concept of storing .emacs inside a .org file in case you
aren't aware of it (you very well may be). I had a tough time finding
an official org or Worg page documenting this, but here's an example
from Sacha Chua:
- Blog about it:
http://sachachua.com/blog/2012/06/literate-programming-emacs-configuration-file/

- An example of the actual file:
http://dl.dropboxusercontent.com/u/3968124/sacha-emacs.org

I've been doing this and love it. My actual .emacs only does the following:

#+begin_src .emacs

;; set load paths
;; set load dirs and global config options
(add-to-list 'load-path "~/.elisp/org.git/lisp/")
(add-to-list 'load-path "~/.elisp/org.git/contrib/lisp/")
;; other load paths

;; setup babel languages
(org-babel-do-load-languages
 'org-babel-load-languages
 '((latex . t)
   (emacs-lisp . t)
   (org . t)
   (R . t)
   (sh . t)
   (python . t )))


;; load org-based config
(org-babel-load-file "~/org/aux/emacs-config.org")

;; stuff created by using M-x customize is at the bottom:
custom-set-variables/faces.

#+end_src

Then, in ~/org/aux/emacs-config.org, I have headlines which break down
the customization into grouped chunks. For example, a block for
org-mode shotcut options:

#+begin_src emacs-config.org

* Window options

Sets size/position of emacs when it starts...

* Org-mode options
Org-specific keyboard shorcuts

#+begin_src emacs-lisp
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
#+end_src

* Keyboard shortcuts
* Fill options
* Sunrise commander
* Misc
* Encryption

#+end_src

Obviously there's a lot more than that, but there's an example of how
one can group/arrange options by headlines so that you don't have to
search around lines and lines of nebulous code blobs to find the line
you're looking for.

Anyway, just wanted to share this in case others on the list are
unaware and would find it useful. I imagine it could even be used in
conjunction with your development as well? Both literate config files
*and* a search method that recognizes config-specific text vs. finding
every single match?


Best regards,
John

> regards,
> Oleh
>



reply via email to

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