about summary refs log tree commit diff
path: root/init/bindings.el
diff options
context:
space:
mode:
Diffstat (limited to 'init/bindings.el')
-rw-r--r--init/bindings.el75
1 files changed, 75 insertions, 0 deletions
diff --git a/init/bindings.el b/init/bindings.el
new file mode 100644
index 000000000000..d29081d1720b
--- /dev/null
+++ b/init/bindings.el
@@ -0,0 +1,75 @@
+;; Various keybindings, most of them taken from starter-kit-bindings
+
+;; Font size
+(define-key global-map (kbd "C-+") 'text-scale-increase)
+(define-key global-map (kbd "C--") 'text-scale-decrease)
+
+;; Use regex searches by default.
+(global-set-key (kbd "C-s") 'isearch-forward-regexp)
+(global-set-key (kbd "\C-r") 'isearch-backward-regexp)
+(global-set-key (kbd "M-%") 'query-replace-regexp)
+(global-set-key (kbd "C-M-s") 'isearch-forward)
+(global-set-key (kbd "C-M-r") 'isearch-backward)
+(global-set-key (kbd "C-M-%") 'query-replace)
+
+;; Jump to a definition in the current file. (Protip: this is awesome.)
+(global-set-key (kbd "C-x C-i") 'imenu)
+
+;; Ace-jump-mode
+(global-set-key (kbd "M-j") 'ace-jump-word-mode)
+
+;; Jump to next occurence of char
+(global-set-key (kbd "C-c f") 'iy-go-to-char)
+
+;; Window switching. (C-x o goes to the next window)
+(windmove-default-keybindings) ;; Shift+direction
+
+;; Start eshell or switch to it if it's active.
+(global-set-key (kbd "C-x m") 'eshell)
+
+;; Start a new eshell even if one is active.
+(global-set-key (kbd "C-x M") (lambda () (interactive) (eshell t)))
+
+;; Eval sexp and replace it with result
+(global-set-key (kbd "C-c e") 'esk-eval-and-replace)
+
+;; Start a regular shell if you prefer that.
+(global-set-key (kbd "C-x C-m") 'shell)
+
+;; So good!
+(global-set-key (kbd "C-c g") 'magit-status)
+
+;; Open project drawer
+(global-set-key (kbd "M-p") 'project-explorer-open)
+
+;; Add a fullscreen toggle - TODO: reenable in next Emacs release
+; (global-set-key (kbd "M-RET") 'toggle-frame-fullscreen)
+
+;; Replace standard goto-line with goto-line-with-feedback
+(global-set-key (kbd "M-g g") 'goto-line-with-feedback)
+
+;; Goodness from @magnars
+;; I don't need to kill emacs that easily
+;; the mnemonic is C-x REALLY QUIT
+(global-set-key (kbd "C-x r q") 'save-buffers-kill-terminal)
+(global-set-key (kbd "C-x C-c") 'delete-frame)
+
+;; Create new frame
+(define-key global-map (kbd "C-x C-n") 'make-frame-command)
+
+;; Cider/nrepl stuff
+;; I want history up/down without modifiers
+(define-key cider-repl-mode-map (kbd "<up>") 'cider-repl-backward-input)
+(define-key cider-repl-mode-map (kbd "<down>") 'cider-repl-forward-input)
+(define-key cider-repl-mode-map (kbd "C-<up>") 'previous-line)
+(define-key cider-repl-mode-map (kbd "C-<down>") 'next-line)
+
+;; ... and ac-cider with C-c C-d
+(define-key cider-repl-mode-map (kbd "C-c C-d") 'ac-cider-compliment-popup-doc)
+(define-key cider-mode-map (kbd "C-c C-d") 'ac-cider-compliment-popup-doc)
+(define-key cider-mode-map (kbd "C-c D") 'cider-doc)
+
+;; Org-mode agenda keys
+(global-set-key (kbd "C-c a") 'org-agenda)
+
+(provide 'bindings)