diff --git a/.config/doom/config.el b/.config/doom/config.el index 07d4959..9f90658 100644 --- a/.config/doom/config.el +++ b/.config/doom/config.el @@ -272,6 +272,16 @@ '(font-lock-comment-face :slant italic) '(font-lock-keyword-face :slant italic)) +(setq imenu-list-focus-after-activation t) + +(map! :leader + (:prefix ("s" . "Search") + :desc "Menu to jump to places in buffer" "i" #'counsel-imenu)) + +(map! :leader + (:prefix ("t" . "Toggle") + :desc "Toggle imenu shown in a sidebar" "i" #'imenu-list-smart-toggle)) + (defun dt/insert-todays-date (prefix) (interactive "P") (let ((format (cond diff --git a/.config/doom/config.org b/.config/doom/config.org index a510dbb..7ad6f82 100644 --- a/.config/doom/config.org +++ b/.config/doom/config.org @@ -29,6 +29,7 @@ - [[#eww][EWW]] - [[#exwm][EXWM]] - [[#fonts][FONTS]] +- [[#imenu][IMENU]] - [[#insert-date][INSERT DATE]] - [[#ivy][IVY]] - [[#ivy-posframe][IVY-POSFRAME]] @@ -569,6 +570,27 @@ Settings related to fonts within Doom Emacs: '(font-lock-keyword-face :slant italic)) #+END_SRC +* IMENU +Imenu produces menus for accessing locations in documents, typically in the current buffer. You can access the locations using an ordinary menu (menu bar or other) or using minibuffer completion, or you can install 'imenu-list' and have the imenu displayed as a vertical split that you can toggle show/hide. + +| COMMAND | DESCRIPTION | KEYBINDING | +|-------------------------+----------------------------------+------------| +| counsel-imenu | /Menu to jump to places in buffer/ | SPC s i | +| imenu-list-smart-toggle | /Toggle imenu shown in a sidebar/ | SPC t i | + +#+BEGIN_SRC emacs-lisp +(setq imenu-list-focus-after-activation t) + +(map! :leader + (:prefix ("s" . "Search") + :desc "Menu to jump to places in buffer" "i" #'counsel-imenu)) + +(map! :leader + (:prefix ("t" . "Toggle") + :desc "Toggle imenu shown in a sidebar" "i" #'imenu-list-smart-toggle)) + +#+END_SRC + * INSERT DATE Some custom functions to insert the date. The function 'insert-todays-date' can be used one of three different ways: (1) just the keybinding without the universal argument prefix, (2) with one universal argument prefix, or (3) with two universal argument prefixes. The universal argument prefix is 'SPC-u' in Doom Emacs (C-u in standard GNU Emacs). The function 'insert-any-date' only outputs to one format, which is the same format as 'insert-todays-date' without a prefix. diff --git a/.config/doom/packages.el b/.config/doom/packages.el index dacbb90..9e00b28 100644 --- a/.config/doom/packages.el +++ b/.config/doom/packages.el @@ -67,6 +67,7 @@ (package! emojify) (package! evil-tutor) (package! exwm) +(package! imenu-list) (package! ivy-posframe) (package! mw-thesaurus) (package! org-auto-tangle)