emacs/lisp/init-evil.el 3.3 K raw
1
;;; init-evil.el -*- lexical-binding: t; -*-
2
3
(use-package evil
4
  :init
5
  (setq evil-want-integration t
6
        evil-want-keybinding nil   ; evil-collection handles other modes
7
        evil-want-C-u-scroll t
8
        evil-want-Y-yank-to-eol t
9
        evil-undo-system 'undo-redo
10
        evil-split-window-below t
11
        evil-vsplit-window-right t
12
        evil-ex-hl-update-delay 0.01)
13
  :config
14
  (evil-mode 1))
15
16
(use-package evil-collection
17
  :after evil
18
  :config
19
  (evil-collection-init))
20
21
(use-package general
22
  :after evil
23
  :config
24
  (general-create-definer my/leader
25
    :states '(normal visual motion insert emacs)
26
    :keymaps 'override
27
    :prefix "SPC"
28
    :global-prefix "M-SPC")
29
30
  (my/leader
31
    "SPC" '(project-find-file :wk "project file")
32
    ":"   '(execute-extended-command :wk "M-x")
33
    "."   '(find-file :wk "find file")
34
    ","   '(switch-to-buffer :wk "switch buffer")
35
    "/"   '(project-find-regexp :wk "project grep")
36
37
    "X"   '(org-capture :wk "org capture")
38
39
    "b"   '(:ignore t :wk "buffer")
40
    "bb"  '(switch-to-buffer :wk "switch")
41
    "bi"  '(ibuffer :wk "ibuffer")
42
    "bd"  '(kill-current-buffer :wk "kill")
43
    "bn"  '(next-buffer :wk "next")
44
    "bp"  '(previous-buffer :wk "previous")
45
    "bs"  '(save-buffer :wk "save")
46
47
    "f"   '(:ignore t :wk "file")
48
    "ff"  '(find-file :wk "find")
49
    "fr"  '(recentf-open :wk "recent")
50
    "fs"  '(save-buffer :wk "save")
51
    "fd"  '(dired-jump :wk "dired")
52
53
    "g"   '(:ignore t :wk "git")
54
    "gg"  '(magit-status :wk "status")
55
    "gb"  '(magit-blame :wk "blame")
56
    "gl"  '(magit-log-current :wk "log")
57
58
    "o"   '(:ignore t :wk "open")
59
    "ow"  '(eww :wk "eww")
60
    "oe"  '(elfeed :wk "elfeed")
61
    "oi"  '(my/erc-soju :wk "irc")
62
    "oj"  '(jabber-roster :wk "jabber")
63
    "om"  '(mu4e :wk "mail")
64
    "ot"  '(ghostel :wk "terminal")
65
    "oT"  '(ghostel-project :wk "project terminal")
66
    "os"  '(eshell :wk "eshell")
67
68
    "ll" '(gptel :wk "gptel")
69
    "la" '(gptel-add :wk "add context")
70
    "lr" '(gptel-context-remove-all :wk "remove context")
71
    "lm" '(gptel-menu :wk "menu")
72
    "ls" '(gptel-send :wk "send")
73
74
    "u"   '(:ignore t :wk "upload")
75
    "uu"  '(uguu-upload-file :wk "upload file")
76
    "uc"  '(uguu-upload-clipboard :wk "upload clipboard")
77
78
    "P"   '(posts-compose :wk "new post")
79
80
    "p"   '(:ignore t :wk "project")
81
    "pp"  '(project-switch-project :wk "switch")
82
    "pf"  '(project-find-file :wk "find file")
83
    "pg"  '(project-find-regexp :wk "grep")
84
    "pb"  '(project-switch-to-buffer :wk "buffer")
85
86
    "s"   '(:ignore t :wk "search")
87
    "ss"  '(isearch-forward :wk "isearch")
88
    "so"  '(occur :wk "occur")
89
90
    "w"   '(:ignore t :wk "window")
91
    "ww"  '(other-window :wk "other")
92
    "wv"  '(evil-window-vsplit :wk "vsplit")
93
    "ws"  '(evil-window-split :wk "split")
94
    "wd"  '(delete-window :wk "close")
95
    "wo"  '(delete-other-windows :wk "only")
96
    "wh"  '(evil-window-left :wk "left")
97
    "wj"  '(evil-window-down :wk "down")
98
    "wk"  '(evil-window-up :wk "up")
99
    "wl"  '(evil-window-right :wk "right")
100
    "w="  '(balance-windows :wk "balance")
101
102
    "h"   '(:ignore t :wk "help")
103
    "hf"  '(describe-function :wk "function")
104
    "hv"  '(describe-variable :wk "variable")
105
    "hk"  '(describe-key :wk "key")
106
    "hm"  '(describe-mode :wk "mode")
107
108
    "q"   '(:ignore t :wk "quit")
109
    "qq"  '(save-buffers-kill-terminal :wk "quit emacs")))
110
111
(provide 'init-evil)