Search code examples
emacselispfolding

Outline or fold mode for editing Emacs Lisp code


Is there a minor mode that I can use in combination with Emacs-Lisp mode such that each function definition can be switched on or off easily without inserting special code in the text file?

for instance

(defun test1()
  (message "Hi!"))

(defun test2()
  (message "Bye"))

Pressing F1 will fold each function definition into the top line/header as

+ (defun test1()
+ (defun test2()

Pressing the + sign in front will unfold a given function and make it editable.. Pressing F2 will unfold all definitions..


Solution

  • Here's my setup:

    (require 'hideshow)
    (global-set-key (kbd "C-M-h") 'hs-toggle-hiding)
    (global-set-key (kbd "<f2> h h") 'hs-hide-all)
    (global-set-key (kbd "<f2> h j") 'hs-show-all)