emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Navigating org-mode customization file
@ 2014-01-12 17:42 Oleh
  2014-01-12 22:48 ` John Hendy
  0 siblings, 1 reply; 2+ messages in thread
From: Oleh @ 2014-01-12 17:42 UTC (permalink / raw)
  To: org mode

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.

regards,
Oleh

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Navigating org-mode customization file
  2014-01-12 17:42 Navigating org-mode customization file Oleh
@ 2014-01-12 22:48 ` John Hendy
  0 siblings, 0 replies; 2+ messages in thread
From: John Hendy @ 2014-01-12 22:48 UTC (permalink / raw)
  To: Oleh; +Cc: org mode

On Sun, Jan 12, 2014 at 11:42 AM, Oleh <ohwoeowho@gmail.com> 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
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-01-12 22:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-12 17:42 Navigating org-mode customization file Oleh
2014-01-12 22:48 ` John Hendy

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).