-
Notifications
You must be signed in to change notification settings - Fork 0
/
+keybinds.el
96 lines (69 loc) · 2.74 KB
/
+keybinds.el
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
;;; $DOOMDIR/+keybinds.el -*- lexical-binding: t; -*-
;; ╔════════════════════════════════════════════════════════════════════════════╗
;; ║ Keybinds ║
;; ╚════════════════════════════════════════════════════════════════════════════╝
;;
;; Doom has a great keybinding system, but there's certain habits i've picked up
;; over the years that i just can't shake
(defconst my/leader-key ","
"Define the leader/prefix key, aka <Leader> in vim. This is
separate from the doom-leader-key, so we can get even quicker access
to our most frequently used keybinds.")
;;; expirimental stuff
(defun my/buffer-clear (&optional force)
"Clear the current buffer. If FORCE is non-nil, clear the buffer"
(interactive)
(let ((inhibit-read-only force))
(erase-buffer)))
(defun my/buffer-clear-force ()
(interactive)
(my/buffer-clear t))
(defun toggle-maximize-buffer () "Maximize buffer"
(interactive)
(if (= 1 (length (window-list)))
(jump-to-register '_)
(progn
(window-configuration-to-register '_)
(delete-other-windows))))
;; bread and butter
(map!
:n "C-p" #'projectile-find-file
:g "C-s-p" #'execute-extended-command
:n "-" #'dired-jump
:prefix my/leader-key
:n "w" #'basic-save-buffer
:n "q" #'evil-quit
:n "d" #'kill-current-buffer
:n "v" #'evil-window-vsplit
:n "h" #'evil-window-split
:n "1" #'+treemacs/toggle
:n "x" #'aritest
:n "ev" (lambda () (interactive) (find-file (concat doom-user-dir "config.el")))
:n "ek" (lambda () (interactive) (find-file (concat doom-user-dir "+keybinds.el")))
:n "eu" (lambda () (interactive) (find-file (concat doom-user-dir "+ui.el"))))
;; extensions
(map!
:v "I" #'evil-mc-make-cursor-in-visual-selection-beg
:v "A" #'evil-mc-make-cursor-in-visual-selection-end
:n "gr" #'lsp-find-references)
(map!
:mode evil-markdown-mode
:nvi "s-b" #'markdown-insert-bold
:nvi "s-i" #'markdown-insert-italic
:i "M-`" (lambda () (interactive) (insert "`")))
(map!
:prefix my/leader-key
:n "f" #'evil-avy-goto-word-0
:n "a" #'lsp-execute-code-action)
;; personal hacks and emacs secific keybinds
(map!
;; because i use ` as my iterm hotkey
"M-`" nil
:i "M-`" (lambda () (interactive) (insert "`"))
:prefix my/leader-key :n "m" (lambda () (interactive) (switch-to-buffer-other-window "*Messages*")))
(map!
:map messages-buffer-mode-map
"s-k" #'my/buffer-clear-force)
(map!
:map vterm-mode-map
"s-k" #'vterm-clear)