-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup-keybindings.el
119 lines (96 loc) · 3.92 KB
/
setup-keybindings.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
(global-set-key "\C-w" #'backward-kill-word)
(global-set-key (kbd "RET") #'newline-and-indent)
(global-set-key (kbd "C-x C-k") #'kill-region)
(global-set-key (kbd "C-c gr") #'igrep)
(global-set-key (kbd "C-c rg") (defun de/recursive-igrep ()
(interactive)
(let ((igrep-options "-R"))
(call-interactively #'igrep))))
(global-set-key (kbd "C-c sw") #'swap-windows)
(global-set-key (kbd "C-c dc") #'describe-char)
(global-set-key (kbd "C-c rr") #'replace-rectangle)
(global-set-key (kbd "C-c es") #'eshell)
(global-set-key (kbd "C-c tl") #'toggle-truncate-lines)
(global-set-key (kbd "C-c wc") #'count-words)
(global-set-key (kbd "C-c d RET") 'de/indent-to)
;; (global-set-key (kbd "C-c lw") 'toggle-truncate-lines)
;; - "line wrap" mnemonic too
(global-set-key (kbd "C-c ws") #'whitespace-mode)
(global-set-key (kbd "C-c M-.") #'de/jump-to-elisp-definition)
(global-set-key (kbd "M-/") #'hippie-expand)
(global-set-key (kbd "C-c q") #'quit-window)
(global-set-key "\C-ha" #'apropos) ; search for all symbols by default (instead of only commands)
(global-set-key (kbd "C-h c") #'apropos-command) ; previously describe-key-briefly
(global-set-key (kbd "C-h C-f") #'describe-function)
(global-set-key (kbd "C-h C-v") #'apropos-variable)
(global-set-key (kbd "\C-x \C-b") #'ibuffer)
(global-set-key (kbd "\C-x\C-m") #'execute-extended-command) ;; per Steve Yegge's advice
(global-set-key (kbd "M-o") #'other-window)
(defalias 'qrr 'query-replace-regexp)
(defalias 'yes-or-no-p 'y-or-n-p)
(defalias 'wc 'count-words)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun beginning-of-line-or-indentation ()
"Moves the cursor to the beginning of the line if at or before the indentation.
Otherwise, moves to the beginning of the line."
(interactive)
(cond ((= (save-excursion (beginning-of-line) (point)) (point))
(back-to-indentation))
((>= (save-excursion (back-to-indentation) (point)) (point))
(beginning-of-line))
((< (save-excursion (back-to-indentation) (point)) (point))
(back-to-indentation))))
(global-set-key "\C-a" 'beginning-of-line-or-indentation)
(global-set-key (kbd "M-j") (defun de/join-line ()
(interactive)
(save-excursion (join-line -1))))
(defun fast-move-down ()
(interactive)
(next-line 5))
(defun fast-move-up ()
(interactive)
(previous-line 5))
(defun scroll-forward-1 ()
(interactive)
(scroll-up 1)
(next-line 1))
(defun scroll-back-1 ()
(interactive)
(scroll-down 1)
(previous-line 1))
;; (global-set-key (kbd "C-S-n") #'fast-move-down)
;; (global-set-key (kbd "C-S-p") #'fast-move-up)
(global-set-key (kbd "C-S-n") #'scroll-forward-1)
(global-set-key (kbd "C-S-p") #'scroll-back-1)
(define-key occur-mode-map (kbd "v") #'occur-mode-display-occurrence)
(define-key occur-mode-map (kbd "n") #'next-line)
(define-key occur-mode-map (kbd "p") #'previous-line)
(defun google-search (query)
"Search for something on Google."
(interactive "sSearch Google for: ")
(browse-url (format "https://www.google.com/#q=%s"
(replace-regexp-in-string " +" "\+" query))))
(global-set-key (kbd "C-c go") 'google-search)
(defun de/open-emacs-configuration-file ()
"open a config file from demacs"
(interactive)
(find-file
(ido-completing-read
"Emacs configuration file: "
(sort (file-expand-wildcards (format "%s/*.el" demacs-directory)) 'string<))))
;; (global-set-key (kbd "C-c de") 'de/open-emacs-configuration-file)
(defun de/visit-demacs ()
"Use helm to visit an emacs configuration file."
(interactive)
(let ((default-directory demacs-directory))
(counsel-projectile-find-file)))
(global-set-key (kbd "C-c de") #'de/visit-demacs)
(when (fboundp 'evil-mode)
(defun de/save-buffer-and-normal-state ()
"save buffer, normal state"
(interactive)
(save-buffer)
(evil-normal-state 1))
(global-set-key (kbd "C-x C-s") #'de/save-buffer-and-normal-state)
(define-key evil-insert-state-map (kbd "C-x C-s") #'de/save-buffer-and-normal-state))
(provide 'setup-keybindings)