Skip to content

Instantly share code, notes, and snippets.

@alexozer
Created November 1, 2018 17:16
Show Gist options
  • Save alexozer/193062c4fe0bb586d20f895af52b2c54 to your computer and use it in GitHub Desktop.
Save alexozer/193062c4fe0bb586d20f895af52b2c54 to your computer and use it in GitHub Desktop.
(defun ozer/new-heading (default-enter open-below)
(if (org-at-heading-p)
;; Enter once will make new heading, twice will clear
(if (string= (org-entry-get nil "ITEM") "")
(evil-change (line-beginning-position) (line-end-position))
;; Insert a new TODO if we're on a TODO
(if (org-get-todo-state)
(org-insert-todo-heading-respect-content)
(org-insert-heading-respect-content)
)
(unless open-below (org-metaup))
(evil-append 1)
)
;; Do whatever enter normally does
(funcall default-enter)
)
)
(defun ozer/archive-on-done ()
(when (and (org-entry-done-p) ()))
)
(evil-define-key 'normal org-mode-map
(kbd "RET") (lambda () (interactive) (ozer/new-heading 'org-open-at-point t))
)
(evil-define-key 'normal org-mode-map
(kbd "<S-return>") (lambda () (interactive) (ozer/new-heading 'org-table-copy-down nil))
)
(evil-define-key 'insert org-mode-map
(kbd "RET") (lambda () (interactive) (ozer/new-heading 'org-return t))
)
(evil-define-key 'insert org-mode-map
(kbd "<S-return>") (lambda () (interactive) (ozer/new-heading 'org-table-copy-down nil))
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment