www.howardism.org
Babblings of an aging geek in love with the Absurd, his family, and his own hubris.... oh, and Lisp.

Imenu on Steroids

If you haven’t used imenu, do this, load up some source code or an org-mode file, and:

Slick. The problem is you have to either use the mouse, or do a lot of typing with tab to get to the function or header you want.

Assuming you have use-package installed to both install and configure packages, put this in your .emacs file and smoke it:

(use-package idomenu
    :ensure t
    :bind ("C-c i" . idomenu))

Now, you have a key binding to search your functions using IDO’s sweet approach to text selection.

If you are mousy or don’t want the visual clutter associated with increasing your mini-buffer, I suggest using imenu+ and its expansion on the standard menu support for imenu:

(use-package imenu+
    :ensure t
    :init (add-hook 'prog-mode-hook 'imenup-add-defs-to-menubar)
          (add-hook 'org-mode-hook  'imenup-add-defs-to-menubar))

Finally, if you are a Helm person, this approach creates a list of all functions/headers in a side buffer making it easier to see more options. Good for when you are looking at new source code:

(use-package helm
    :ensure t
    :bind (("C-c M-i" . helm-imenu)))

Next time, we should talk about tags…