Search code examples
emacsorg-modeoutliner

make org-mode temporarily emulate traditional outlining keybindings?


Most of the time, org-mode's keybindings M-return to create a heading, and TAB to cycle visibility, are quite useful.

But sometimes when brainstorming, it would be useful to use org-mode to create a traditional hierarchical bulleted list (of course using stars instead of bullets), and using the traditional keybindings used by outlining apps like Workflowy, Evernote, Taskpaper, etc:

  • return creates the next item in the bulleted list
  • tab demotes the item in the hierarchy
  • S-tab promotes the item in the hierarchy

In org terms, this would mean:

  • return binds to M-return
  • tab binds to M-right
  • S-tab binds to M-left

Is there some kind of org minor mode that will allow me to (temporarily) run org like it's a traditional outlining app?


Solution

  • I don't believe there is any existing minor mode that will do the trick, however one such as this should work:

    (define-minor-mode zin/org-outline-mode
      "" nil
      :lighter " OOut"
      :keymap (let ((map (make-sparse-keymap)))
                (define-key map (kbd "<return>") 'org-meta-return)
                (define-key map (kbd "<tab>") 'org-metaright)
                (define-key map (kbd "S-<tab>") 'org-metaleft)
                map))