emacs - commit all stale emacs config
[dotfiles.git] / emacs.d / config / init-key-binding.el
1 ;; This  file is for some global key binding
2
3
4 (setq mac-command-modifier 'super) ; make cmd key do Meta
5
6 (global-set-key (kbd "<s-return>") 'toggle-frame-fullscreen)
7
8 ;; global swith project - plugin projectile
9 (global-set-key (kbd "s-t") 'helm-projectile-switch-project)
10 (global-set-key (kbd "s-n") 'persp-next)
11 (global-set-key (kbd "s-p") 'persp-prev)
12 (global-set-key (kbd "s-h") 'persp-switch)
13 (global-set-key (kbd "s-j") 'helm-projectile-switch-to-buffer)
14 (global-set-key (kbd "s-k") 'helm-cmd-t)
15
16
17 (defun pl-make-keymap (key bindings)
18   (setq keymap (make-sparse-keymap))
19   (dolist (binding bindings)
20     (define-key keymap (car binding) (cdr binding)))
21   (global-set-key key keymap))
22
23 ;; Esc s or M-s as prefix key
24 (pl-make-keymap "\M-s"
25             '(("j" . pl-switch-buffers)
26               ("h" . persp-switch)
27               ("k" . helm-cmd-t)
28               ("w" . save-buffer)
29               ("q" . helm-find-files)
30               ("-" . split-window-below)
31               ("\\" . split-window-right)
32               ("o" . occur)
33               ("b" . helm-find-files)))
34
35 ;; if current is not a project, useing helm-mini instead
36 (defun pl-switch-buffers ()
37   (interactive)
38   (if (projectile-project-p)
39       (helm-projectile-switch-to-buffer)
40     (helm-mini)))
41   
42
43 ;; key-chord
44 (require 'key-chord)
45
46 (setq key-chord-two-keys-delay 0.5)
47
48 ;; from emacs conference 2015 workshop
49 (defun keychord-keymap (keychord bindings)
50   (setq keymap (make-sparse-keymap))
51   (dolist (binding bindings)
52     (define-key keymap (car binding) (cdr binding)))
53   (key-chord-define-global keychord keymap))
54
55 (defun switch-to-previous-buffer ()
56   "Switch to previously open buffer. Repeated invocations toggle between the two most recently open buffers."
57   (interactive)
58   (switch-to-buffer (other-buffer (current-buffer) 1)))
59
60
61 ;; main keymap
62 ;n(keychord-keymap "ss"
63 ;                 '(("j" . helm-mini)
64 ;                   ("k" . find-file)
65 ;                  ("o" . delete-other-windows)))
66
67 ;; for some helm key mapping
68 ;(key-chord-define-global "sj" 'helm-mini)
69 ;(key-chord-define-global "sk" 'helm-find-files)
70
71
72 ;(key-chord-define-global "JJ" 'save-buffer)
73 ;(key-chord-define-global "HH" 'save-buffer)
74 ;(key-chord-define-global "KK" 'save-buffer)
75 ;(key-chord-define-global "LL" 'save-buffer)
76 ;(key-chord-define-global "LL" 'save-buffer)
77 ;(key-chord-define-global "UU" 'save-buffer)
78 ;(key-chord-define-global "II" 'save-buffer)
79 ;(key-chord-define-global "OO" 'save-buffer)
80 ;(key-chord-define-global "NN" 'save-buffer)
81 ;(key-chord-define-global "MM" 'save-buffer)
82 ;(key-chord-define-global "PP" 'save-buffer)
83 ;(key-chord-define-global "YY" 'save-buffer)
84
85
86
87 (key-chord-define minibuffer-local-map "jj"  'keyboard-escape-quit)
88 (key-chord-define minibuffer-local-ns-map "jj"  'keyboard-escape-quit)
89 (key-chord-define minibuffer-local-isearch-map "jj"  'keyboard-escape-quit)
90 (key-chord-define minibuffer-local-completion-map "jj"  'keyboard-escape-quit)
91 (key-chord-define minibuffer-local-must-match-map "jj"  'keyboard-escape-quit)
92 (key-chord-define minibuffer-local-must-match-filename-map "jj"  'keyboard-escape-quit)
93 (key-chord-define minibuffer-local-filename-completion-map "jj"  'keyboard-escape-quit)
94 (key-chord-define minibuffer-local-filename-must-match-map "jj"  'keyboard-escape-quit)
95
96
97 (define-key minibuffer-local-map [escape]  'keyboard-escape-quit)
98 (define-key minibuffer-local-ns-map [escape]  'keyboard-escape-quit)
99 (define-key minibuffer-local-isearch-map [escape]  'keyboard-escape-quit)
100 (define-key minibuffer-local-completion-map [escape]  'keyboard-escape-quit)
101 (define-key minibuffer-local-must-match-map [escape]  'keyboard-escape-quit)
102 (define-key minibuffer-local-must-match-filename-map [escape]  'keyboard-escape-quit)
103 (define-key minibuffer-local-filename-completion-map [escape]  'keyboard-escape-quit)
104 (define-key minibuffer-local-filename-must-match-map [escape]  'keyboard-escape-quit)
105
106
107
108 (key-chord-mode 1)
109
110
111
112
113 ;; ESC ; j M-; add comment, 
114 (pl-make-keymap "\M-;"
115             '(("v" . split-window-below)
116               ("h" . split-window-right)
117               ("b" . helm-find-files)))
118
119 ;; ESC c 
120 ;(pl-make-keymap "\M-c"
121 ;            '(("v" . split-window-below)
122 ;             ("h" . split-window-right)
123 ;             ("b" . helm-find-files)))
124
125
126 ;; Esc o - set font , can change
127 ;; M-l M-u low/up caps can changed
128 ;; M-t transpose, not used, changed
129 ;; M-z
130 ;; M-c capitialize
131
132
133 ;(global-set-key (kbd "M-s j") 'helm-mini)
134 ;(global-set-key (kbd "M-s k") 'helm-find-files)
135
136 ;; ESC ESC + i
137 (global-set-key (kbd "ESC M-h") 'helm-mini)
138 (global-set-key (kbd "ESC M-j") 'helm-mini)
139 (global-set-key (kbd "ESC M-k") 'helm-mini)
140 (global-set-key (kbd "ESC M-l") 'helm-mini)
141 (global-set-key (kbd "ESC M-;") 'helm-mini)
142 (global-set-key (kbd "ESC M-y") 'helm-mini)
143 (global-set-key (kbd "ESC M-u") 'helm-mini)
144 (global-set-key (kbd "ESC M-i") 'helm-mini)
145 (global-set-key (kbd "ESC M-o") 'other-window)
146 (global-set-key (kbd "ESC M-p") 'helm-mini)
147 (global-set-key (kbd "ESC M-n") 'helm-mini)
148 (global-set-key (kbd "ESC M-m") 'helm-mini)
149 (global-set-key (kbd "ESC M-y") 'helm-mini)
150 (global-set-key (kbd "ESC M-s") 'split-window-below)
151 (global-set-key (kbd "ESC M-v") 'split-window-right)
152 (global-set-key (kbd "ESC M-u") 'helm-mini)
153 (global-set-key (kbd "ESC M-i") 'helm-mini)
154 (global-set-key (kbd "ESC M-p") 'helm-mini)
155 (global-set-key (kbd "ESC M-;") 'helm-mini)
156 (global-set-key (kbd "ESC M-1") 'delete-other-windows)
157 (global-set-key (kbd "ESC M-2") 'split-window-below)
158 (global-set-key (kbd "ESC M-3") 'split-window-right)
159
160
161 (global-set-key (kbd "C-; C-j") 'helm-mini)
162
163 ;(global-set-key (kbd "<escape> j") 'helm-mini)
164 ;(global-set-key (kbd "<escape> k") 'helm-find-files)
165 ;(global-set-key (kbd "<escape> l") 'find-file)
166 ;(global-set-key (kbd "<escape> f") 'find-file)
167 ;(global-set-key (kbd "<escape> M-a") 'find-file)
168 ;(global-set-key (kbd "<escape> M-a") 'find-file)
169 ;(global-set-key (kbd "<escape> M-a") 'find-file)
170 ;(global-set-key (kbd "<escape> M-o") 'delete-other-windows)
171 ;(global-set-key (kbd "<escape> M-h") 'other-window)
172 ;(global-set-key (kbd "<escape> M-j") 'find-file)
173 ;(global-set-key (kbd "<escape> M-k") 'find-file)
174 ;(global-set-key (kbd "<escape> M-l") 'find-file)
175
176
177
178 ;; project
179 ;(global-set-key (kbd "<escape> M-n") 'find-file)
180 ;(global-set-key (kbd "<escape> M-m") 'find-file)
181 ;(global-set-key (kbd "<escape> M-p") 'find-file)
182 ;(global-set-key (kbd "<escape> M-u") 'find-file)
183 ;(global-set-key (kbd "<escape> M-y") 'find-file)
184 ;(global-set-key (kbd "<escape> <escape>") 'find-file)
185
186
187
188
189
190 ;;(global-set-key (kbd "s-k") (lambda () (interactive) (elscreen-kill (elscreen-get-current-screen))))
191 ;;(global-set-key (kbd "s-d") (lambda () (interactive) (elscreen-kill (elscreen-get-current-screen))))
192 ;; C-c C-d
193
194 (global-set-key (kbd "s-`") (lambda () (interactive) (elscreen-goto 0)))
195 (global-set-key (kbd "s-1") (lambda () (interactive) (elscreen-goto 1)))
196 (global-set-key (kbd "s-2") (lambda () (interactive) (elscreen-goto 2)))
197 (global-set-key (kbd "s-3") (lambda () (interactive) (elscreen-goto 3)))
198 (global-set-key (kbd "s-4") (lambda () (interactive) (elscreen-goto 4)))
199 (global-set-key (kbd "s-5") (lambda () (interactive) (elscreen-goto 5)))
200 (global-set-key (kbd "s-6") (lambda () (interactive) (elscreen-goto 6)))
201 (global-set-key (kbd "s-7") (lambda () (interactive) (elscreen-goto 7)))
202 (global-set-key (kbd "s-8") (lambda () (interactive) (elscreen-goto 8)))
203
204 ;; super key for windows
205 ;(global-set-key (kbd "s-l") 'split-window-below)
206 ;(global-set-key (kbd "s-h") 'split-window-right)
207 ;(global-set-key (kbd "s-i") 'other-window)
208 ;(global-set-key (kbd "s-j") 'delete-other-windows)
209
210 ;(global-set-key (kbd "s-k") (lambda () (interactive)
211 ;                             (split-window-right)
212 ;                             (other-window 1)
213 ;                             (ido-find-file)))
214                                 
215                               
216
217
218 ;(global-set-key (kbd "M-g M-w") 'other-window)
219
220
221
222 ;(global-set-key (kbd "C-o C-g") 'ggtags-find-file)
223 ;(global-set-key (kbd "C-o C-t") 'ggtags-find-tag-dwim)
224
225 ;(global-set-key (kbd "M-g M-g") 'magit-status)
226
227 (global-set-key [f7] 'winner-undo)
228 (global-set-key [C-f7] 'winner-redo)
229
230
231 (defun recentf-ido-find-file ()
232   "Find a recent file using Ido."
233   (interactive)
234   (let ((file (ido-completing-read "Choose recent file: " recentf-list nil t)))
235     (when file
236       (find-file file))))
237
238
239 (global-set-key "\C-s" 'isearch-forward-regexp)
240 (global-set-key "\C-r" 'isearch-backward-regexp)
241
242 (provide 'init-key-binding)