diff options
| -rw-r--r-- | evil-org.el | 72 |
1 files changed, 46 insertions, 26 deletions
diff --git a/evil-org.el b/evil-org.el index 84d94be..b306cff 100644 --- a/evil-org.el +++ b/evil-org.el @@ -28,7 +28,6 @@ ;; See, https://github.com/edwtjo/evil-org-mode/issues (require 'evil) -;; (require 'evil-leader) (require 'org) (define-minor-mode evil-org-mode @@ -40,41 +39,62 @@ (add-hook 'org-mode-hook 'evil-org-mode) ;; only load with org-mode -;; regular normal state shortcuts. +(defun always-insert-item () + (if (not (org-in-item-p)) + (insert "\n- ") + (org-insert-item)) + ) + +(defun evil-org-eol-call (fun) + (end-of-line) + (funcall fun) + (evil-append nil) + ) + +;; normal state shortcuts (evil-define-key 'normal evil-org-mode-map "gh" 'outline-up-heading "gj" 'org-forward-same-level "gk" 'org-backward-same-level "gl" 'outline-next-visible-heading + "t" 'org-todo + "T" '(lambda () (interactive) (evil-org-eol-call '(org-insert-todo-heading nil))) "H" 'org-beginning-of-line "L" 'org-end-of-line - "t" 'org-todo + ";t" 'org-show-todo-tree + "o" '(lambda () (interactive) (evil-org-eol-call 'always-insert-item)) + "O" '(lambda () (interactive) (evil-org-eol-call 'org-insert-heading)) "$" 'org-end-of-line "^" 'org-beginning-of-line - "-" 'org-ctrl-c-minus "<" 'org-metaleft - ">" 'org-metaright) - -;; leader shortcuts in normal state. (disabled for now) -;; (evil-leader/set-key 'normal evil-org-mode-map -;; "c" 'org-cycle -;; "e" 'org-export-dispatch -;; "n" 'outline-next-visible-heading -;; "p" 'outline-previous-visible-heading -;; "t" 'org-set-tags-command -;; "u" 'outline-up-heading) + ">" 'org-metaright + ";a" 'org-agenda + "-" 'org-cycle-list-bullet + (kbd "TAB") 'org-cycle) ;; normal & insert state shortcuts. -(mapcar (lambda (state) - (evil-define-key state evil-org-mode-map - (kbd "M-l") 'org-metaright - (kbd "M-h") 'org-metaleft - (kbd "M-k") 'org-metaup - (kbd "M-j") 'org-metadown - (kbd "M-L") 'org-shiftmetaright - (kbd "M-H") 'org-shiftmetaleft - (kbd "M-K") 'org-shiftmetaup - (kbd "M-J") 'org-shiftmetadown)) '(normal insert)) -(provide 'evil-org) +(mapc (lambda (state) + (evil-define-key state evil-org-mode-map + (kbd "M-l") 'org-metaright + (kbd "M-h") 'org-metaleft + (kbd "M-k") 'org-metaup + (kbd "M-j") 'org-metadown + (kbd "M-L") 'org-shiftmetaright + (kbd "M-H") 'org-shiftmetaleft + (kbd "M-K") 'org-shiftmetaup + (kbd "M-J") 'org-shiftmetadown + (kbd "M-o") '(lambda () (interactive) + (evil-org-eol-call + '(lambda() + (org-insert-heading) + (org-metaright)))) + (kbd "M-t") '(lambda () (interactive) + (evil-org-eol-call + '(lambda() + (org-insert-todo-heading nil) + (org-metaright)))) + )) + '(normal insert)) -;;; evil-org-mode.el ends here +(provide 'evil-org) +;;; evil-org.el ends here |
