I came across popup-switcher couple years back, loved using interfaces based on popup.el since then. Idea of presenting file outline for scala-mode came naturally and that’s how scala-outline-popup was created, which then transformed into more general imenu list viewer - popup-imenu. Thing I like the most is that it opens at point, so I don’t move my lazy eyes much.

popup-imenu gif


M-x popup-imenu


Control popup horizontal positioning with:

  • 'center - open popup at window center
  • 'fill-column - center relative to fill-column (default setting)
  • 'point - open popup at point
(setq popup-imenu-position 'point)
  • 'flat - flatten hierarchical imenu
  • 'indent - use whitespace indentation to show hierarchical imenu
(setq popup-imenu-style 'indent)

Flx matching is enabled by default. Disable it with:

(setq popup-imenu-fuzzy-match nil)


(global-set-key (kbd "C-e") 'popup-imenu)

;; Close the popup with same key
(define-key popup-isearch-keymap (kbd "C-e") 'popup-isearch-cancel)

Igor Shymko

Igor Shymko
Lives and works in Kiev, Ukraine. Writes scala programs as full time job, enjoys good electronic music, tasty coffee, good mood, loves snowboarding!