Mercurial > dotfiles
annotate .elisp/settings/90.keybindings.el @ 522:7983184eb8d8
emacs.sh: hack together fallback to vscode
Lately if emacs is not running I prefer using vscode. This allows
my muscle memory to keep working.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sun, 31 Jul 2022 22:34:33 -0400 |
parents | 0731ceeb27dd |
children |
rev | line source |
---|---|
77 | 1 ;; Key Bindings |
2 ; M-backspace kills the current buffer | |
3 (global-set-key [(meta backspace)] 'kill-this-buffer) | |
190
5dbff8b65be7
emacs: switch ways of defining M-backsp
Augie Fackler <durin42@gmail.com>
parents:
177
diff
changeset
|
4 (global-set-key "\M-\d" 'kill-this-buffer) |
77 | 5 ; Save early and often, with only one keystroke |
6 (global-set-key [(meta s)] 'save-buffer) | |
7 ; Typing tab is for lesser editors, make hitting return do that | |
128
d59b0340a85a
Man, this is what I wanted all along.
Augie Fackler <durin42@gmail.com>
parents:
126
diff
changeset
|
8 (global-set-key "\C-m" 'indent-new-comment-line) |
77 | 9 ; M-l makes more sense to me for jumping to a line |
10 (global-set-key "\M-l" 'goto-line) | |
11 ; Sometimes C-h is what Backspace sends in a terminal, and I never use C-h | |
12 (global-set-key "\C-h" 'backward-delete-char-untabify) | |
13 ; M-t is what I want for the textmate file finding | |
14 (global-set-key [(meta t)] 'textmate-goto-file) | |
126 | 15 ; M-p for bouncing to the matching paren |
16 (global-set-key [(meta p)] 'bounce-to-other-paren) | |
101 | 17 (global-set-key [(meta control f)] 'textmate-find-in-project-type) |
126 | 18 (global-set-key [(meta shift f)] 'textmate-find-in-project) |
77 | 19 (global-set-key [(meta m)] 'iconify-or-deiconify-frame) |
20 (global-set-key [(control backspace)] 'kill-word) | |
95
df45e402581c
Save in server buffer also marks as done.
Augie Fackler <durin42@gmail.com>
parents:
77
diff
changeset
|
21 |
168
efe94205bf07
emacs: bind f3 to next-error
Augie Fackler <durin42@gmail.com>
parents:
141
diff
changeset
|
22 (global-set-key [f3] 'next-error) |
289
5fd871a98b5f
emacs: start making an f4-dwim function
Augie Fackler <raf@durin42.com>
parents:
236
diff
changeset
|
23 (defun af-dwim-f4 () (interactive) |
5fd871a98b5f
emacs: start making an f4-dwim function
Augie Fackler <raf@durin42.com>
parents:
236
diff
changeset
|
24 (cond ((string-match "\\.t$" buffer-file-name) |
5fd871a98b5f
emacs: start making an f4-dwim function
Augie Fackler <raf@durin42.com>
parents:
236
diff
changeset
|
25 (textmate-start-compile-in-root |
477
8373f6924e50
emacs: kludge around a case of emacs being too clever for me
Augie Fackler <raf@durin42.com>
parents:
476
diff
changeset
|
26 ;; hack alert: the leading `echo` here prevents emacs from |
8373f6924e50
emacs: kludge around a case of emacs being too clever for me
Augie Fackler <raf@durin42.com>
parents:
476
diff
changeset
|
27 ;; being too smart and "fixing" our default-directory. |
482
0731ceeb27dd
emacs: run hg tests under python3 by default now
Augie Fackler <raf@durin42.com>
parents:
477
diff
changeset
|
28 (concat "echo && cd tests && python3 run-tests.py --local " |
420
11fdb5a60eee
emacs: bind f4 to a smarter command in .t files
Augie Fackler <raf@durin42.com>
parents:
398
diff
changeset
|
29 (file-name-nondirectory buffer-file-name)))) |
398
1cda3348f36b
emacs f4 dwim: bind rust files to running tests with cargo
Augie Fackler <raf@durin42.com>
parents:
345
diff
changeset
|
30 ((string-match "\\.rs$" buffer-file-name) |
1cda3348f36b
emacs f4 dwim: bind rust files to running tests with cargo
Augie Fackler <raf@durin42.com>
parents:
345
diff
changeset
|
31 (textmate-start-compile-in-root "cargo test")) |
1cda3348f36b
emacs f4 dwim: bind rust files to running tests with cargo
Augie Fackler <raf@durin42.com>
parents:
345
diff
changeset
|
32 )) |
443
eff0298b770d
emacs: add f2 as a binding for other-window
Augie Fackler <raf@durin42.com>
parents:
420
diff
changeset
|
33 (global-set-key [f2] 'other-window) |
289
5fd871a98b5f
emacs: start making an f4-dwim function
Augie Fackler <raf@durin42.com>
parents:
236
diff
changeset
|
34 (global-set-key [f4] 'af-dwim-f4) |
177
70dcdb2acade
emacs keybindings: f5 for diff-apply-hunk
Augie Fackler <durin42@gmail.com>
parents:
168
diff
changeset
|
35 (global-set-key [f5] 'diff-apply-hunk) |
168
efe94205bf07
emacs: bind f3 to next-error
Augie Fackler <durin42@gmail.com>
parents:
141
diff
changeset
|
36 |
101 | 37 ;; M-j for jump to function definition |
141
e30655eb7050
textmate.el: synced with upstream
Augie Fackler <durin42@gmail.com>
parents:
128
diff
changeset
|
38 (global-set-key [(meta j)] 'textmate-goto-symbol) |
101 | 39 |
40 ;; commit emacs heresy? | |
236
3e1ec121efaf
emacs: use smex as a replacement for execute-extended-command
Augie Fackler <durin42@gmail.com>
parents:
190
diff
changeset
|
41 (global-set-key [(meta r)] 'smex) |
3e1ec121efaf
emacs: use smex as a replacement for execute-extended-command
Augie Fackler <durin42@gmail.com>
parents:
190
diff
changeset
|
42 (global-set-key (kbd "M-R") 'smex-major-mode-commands) |
101 | 43 |
311
745e7cc9c2cd
emacs: bind C-x C-b to ibuffer, which is awesome
Augie Fackler <raf@durin42.com>
parents:
289
diff
changeset
|
44 (global-set-key (kbd "C-x C-b") 'ibuffer) |
745e7cc9c2cd
emacs: bind C-x C-b to ibuffer, which is awesome
Augie Fackler <raf@durin42.com>
parents:
289
diff
changeset
|
45 |
101 | 46 ;; Mac-like keybindings for undo/cut/copy/paste |
47 (global-set-key [(meta c)] 'kill-ring-save) | |
48 (global-set-key [(meta x)] 'kill-region) | |
49 (global-set-key [(meta z)] 'undo) | |
50 (global-set-key [(meta v)] 'yank) | |
51 (global-set-key [M-return] 'fullscreen) | |
52 (global-set-key [(control v)] 'yank-pop) | |
53 | |
54 ;; Fixup hooks for modes that like taking my keys back | |
55 (add-hook 'text-mode-hook '(lambda () | |
56 (define-key text-mode-map "\M-s" | |
57 'save-buffer))) | |
58 (add-hook 'comint-mode-hook '(lambda () | |
59 (local-set-key "\M-r" | |
60 'execute-extended-command))) | |
61 | |
95
df45e402581c
Save in server buffer also marks as done.
Augie Fackler <durin42@gmail.com>
parents:
77
diff
changeset
|
62 (defun server-save-buffer-and-finish () |
df45e402581c
Save in server buffer also marks as done.
Augie Fackler <durin42@gmail.com>
parents:
77
diff
changeset
|
63 (interactive) |
345
b9c8655f12f0
emacs: only call server-edit during my save function if the buffer was actually a server buffer
Augie Fackler <raf@durin42.com>
parents:
311
diff
changeset
|
64 (save-buffer) |
b9c8655f12f0
emacs: only call server-edit during my save function if the buffer was actually a server buffer
Augie Fackler <raf@durin42.com>
parents:
311
diff
changeset
|
65 (if server-buffer-clients (server-edit))) |
95
df45e402581c
Save in server buffer also marks as done.
Augie Fackler <durin42@gmail.com>
parents:
77
diff
changeset
|
66 (add-hook 'server-switch-hook |
df45e402581c
Save in server buffer also marks as done.
Augie Fackler <durin42@gmail.com>
parents:
77
diff
changeset
|
67 '(lambda ()(local-set-key "\M-s" 'server-save-buffer-and-finish ))) |