summaryrefslogtreecommitdiff
path: root/doc/example_config.el
blob: dd1e66747722f13a34a874876b01b0d3cd676bee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
(add-to-list 'load-path "~/.emacs.d/plugins/evil-org")
(require 'evil-org)
(require 'evil-org-agenda)
(require 'leader)
(require 'hydra)

(setf evil-org-key-theme '(navigation insert textobjects additional))
(setf org-special-ctrl-a/e t)
(evil-org-agenda-set-keys)

(add-hook 'org-mode-hook
 (lambda ()
   (evil-org-mode)

   ;; Custom mappings
   (evil-define-key 'normal evil-org-mode-map
     (kbd "-") 'org-ctrl-c-minus
     (kbd "|") 'org-table-goto-column
     (kbd "M-o") (evil-org-define-eol-command org-insert-heading)
     (kbd "M-t") (evil-org-define-eol-command org-insert-todo))

   ;; Configure leader key
   (evil-leader/set-key-for-mode 'org-mode
     "." 'hydra-org-state/body
     "t" 'org-todo
     "T" 'org-show-todo-tree
     "v" 'org-mark-element
     "a" 'org-agenda
     "c" 'org-archive-subtree
     "l" 'evil-org-open-links
     "C" 'org-resolve-clocks)

   ;; Define a transient state for quick navigation
   (defhydra hydra-org-state ()
     ;; basic navigation
     ("i" org-cycle)
     ("I" org-shifttab)
     ("h" org-up-element)
     ("l" org-down-element)
     ("j" org-forward-element)
     ("k" org-backward-element)
     ;; navigating links
     ("n" org-next-link)
     ("p" org-previous-link)
     ("o" org-open-at-point)
     ;; navigation blocks
     ("N" org-next-block)
     ("P" org-previous-block)
     ;; updates
     ("." org-ctrl-c-ctrl-c)
     ("*" org-ctrl-c-star)
     ("-" org-ctrl-c-minus)
     ;; change todo state
     ("H" org-shiftleft)
     ("L" org-shiftright)
     ("J" org-shiftdown)
     ("K" org-shiftup)
     ("t" org-todo))))