]> code.delx.au - dotemacs/blob - lisp/my-keys.el
Fix magit bindings
[dotemacs] / lisp / my-keys.el
1 ;;; -*- lexical-binding: t -*-
2
3 ;; Disable suspend-frame, it's annoying
4 (global-set-key (kbd "C-z") nil)
5 (global-set-key (kbd "C-x C-z") nil)
6
7 ;; Search
8 (global-set-key (kbd "C-s") 'counsel-grep-or-swiper)
9 (global-set-key (kbd "C-r") 'ivy-resume)
10
11 ;; Files/buffers
12 (global-set-key (kbd "C-x f") 'counsel-rg-jump)
13 (global-set-key (kbd "C-x g") 'counsel-rg)
14 (global-set-key (kbd "C-x l") 'counsel-locate)
15 (global-set-key (kbd "C-x c") 'my/kill-buffers-not-in-frame)
16 (global-set-key (kbd "C-x C-b") 'ibuffer)
17 (global-set-key (kbd "C-x C-r") 'counsel-recentf)
18 (global-set-key (kbd "C-x t") 'my/find-prod-or-test-file)
19 (global-set-key (kbd "C-c g d") 'git-gutter:popup-hunk)
20 (global-set-key (kbd "C-c g p") 'git-gutter:previous-hunk)
21 (global-set-key (kbd "C-c g n") 'git-gutter:next-hunk)
22 (global-set-key (kbd "C-c g r") 'git-gutter:revert-hunk)
23
24 ;; Windows/frames
25 (global-set-key (kbd "C-x 9") 'my/window-resize-mode)
26 (global-set-key (kbd "<C-up>") 'windmove-up)
27 (global-set-key (kbd "<C-down>") 'windmove-down)
28 (global-set-key (kbd "<C-left>") 'windmove-left)
29 (global-set-key (kbd "<C-right>") 'windmove-right)
30
31 ;; Movement
32 (global-set-key (kbd "M-g f") 'jump-char-forward)
33
34 ;; Text formatting
35 (global-set-key (kbd "M-;") 'comment-line)
36 (global-set-key (kbd "M-i") 'change-inner)
37 (global-set-key (kbd "C-o") 'my/open-line-above)
38 (global-set-key (kbd "M-o") 'my/open-line-below)
39 (global-set-key (kbd "C-c c") 'my/copy-line)
40 (global-set-key (kbd "C-c d") 'my/duplicate-line)
41
42 ;; Marking
43 (global-set-key (kbd "M-=") 'er/expand-region)
44 (global-set-key (kbd "C-c m a") 'mc/mark-all-dwim)
45 (global-set-key (kbd "C-c m l") 'mc/edit-lines)
46 (global-set-key (kbd "C-c m m") 'mc/mark-more-like-this-extended)
47 (global-set-key (kbd "C-c m p") 'mc/mark-previous-like-this)
48 (global-set-key (kbd "C-c m n") 'mc/mark-next-like-this)
49
50 ;; Killing and deleting
51 (global-set-key (kbd "M-z") 'zap-up-to-char)
52 (global-set-key (kbd "C-c k") 'kill-whole-line)
53 (global-set-key (kbd "C-c s") 'my/substitute-line)
54
55 ;; Mode switching
56 (global-set-key (kbd "C-x C-j") 'direx-project:jump-to-project-root-other-window)
57 (global-set-key (kbd "C-c g s") 'magit-status)
58 (global-set-key (kbd "C-c g g") 'magit-dispatch)
59 (global-set-key (kbd "C-c g f") 'magit-file-dispatch)
60 (global-set-key (kbd "<f8>") 'flyspell-mode)
61 (global-set-key (kbd "<f9>") 'whitespace-mode)
62 (global-set-key (kbd "<f10>") 'toggle-truncate-lines)
63
64 ;; Disable some default bindings from the builtin mouse.el
65 (global-set-key [C-down-mouse-1] nil)
66 (global-set-key [C-down-mouse-2] nil)
67 (global-set-key [C-down-mouse-3] nil)
68 (global-set-key [S-down-mouse-1] nil)
69 (global-set-key [S-down-mouse-2] nil)
70 (global-set-key [S-down-mouse-3] nil)
71
72
73 (defun my/window-resize-mode ()
74 (interactive)
75 (message "Resize window with the arrow keys")
76 (let ((keymap (make-sparse-keymap)))
77 (define-key keymap [up] #'enlarge-window)
78 (define-key keymap [down] #'shrink-window)
79 (define-key keymap [left] #'shrink-window-horizontally)
80 (define-key keymap [right] #'enlarge-window-horizontally)
81 (set-transient-map keymap t)))