doomemacs/init/core-keymaps.el

129 lines
3.7 KiB
EmacsLisp
Raw Normal View History

2014-07-15 02:21:56 -04:00
(require-package 'key-chord)
(key-chord-mode 1)
(setq key-chord-two-keys-delay 0.5)
;; Global keymaps ;;;;;;;;;;;;;;;
(gmap (kbd "C-x C-p") 'package-list-packages)
(gmap (kbd "M-x") 'smex)
(gmap (kbd "M-X") 'smex-major-mode-commands)
(if (is-osx) (progn
(gmap (kbd "s-+") 'text-scale-increase)
(gmap (kbd "s--") 'text-scale-decrease)
(map (kbd "C-c o") 'send-to-finder)
(map (kbd "C-c u") 'send-to-transmit)
(map (kbd "C-c l") 'send-to-launchbar)
(map (kbd "C-c L") 'send-dir-to-launchbar)
(emap 'normal (kbd "C-c e") 'eval-buffer)
(emap 'visual (kbd "C-c e") 'eval-region)
))
(map (kbd "C-c t") (lambda() (interactive) (eshell t)))
(map (kbd "C-c g") 'magit-status)
(map (kbd "<C-tab>") 'evil-numbers/inc-at-pt)
(map (kbd "<S-C-tab>") 'evil-numbers/dec-at-pt)
(map (kbd "s-o") 'ido-find-file)
(map (kbd "s-p") 'projectile-switch-project)
(map (kbd "s-f") 'projectile-find-file)
(map (kbd "s-F") 'projectile-ag)
(map (kbd "s-R") 'projectile-recentf)
(define-key evil-ex-completion-map (kbd "C-r") #'evil-ex-paste-from-register)
;; Local keymaps ;;;;;;;;;;;;;;;;
(evil-leader/set-leader ",")
(evil-leader/set-key
"e" 'my-conf-edit
"E" 'my-conf-find
"/" 'imenu
"\\" 'toggle-speedbar
";" 'helm-imenu
"," 'ido-switch-buffer
"=" 'align-regexp)
(nmap ";" 'exil-ex)
;; Easy escape from insert mode
(ichmap "jj" 'evil-normal-state)
;; Moving rows rather than lines (in case of wrapping)
(nmap "j" 'evil-next-visual-line)
(nmap "k" 'evil-previous-visual-line)
;; Commenting lines
(nmap "gcc" 'evilnc-comment-or-uncomment-lines)
(vmap "gc" 'evilnc-comment-or-uncomment-lines)
;; Enable TAB to do matchit (won't work in visual)
(evil-define-key 'normal evil-matchit-mode-map (kbd "TAB") 'evilmi-jump-items)
;; Delete without yanking
(evil-define-operator evil-destroy (beg end type register yank-handler)
(evil-delete beg end type ?_ yank-handler))
(nmap "X" 'evil-destroy)
(nmap "Y" 'copy-to-end-of-line) ; nnoremap Y y$
(nmap "zz" 'kill-this-buffer) ; Close buffer
;; vnoremap < <gv
;; vnoremap > >gv
(vmap (kbd "<")
(lambda ()
(interactive)
(evil-shift-left (region-beginning) (region-end))
(evil-normal-state)
(evil-visual-restore)))
(vmap (kbd ">")
(lambda ()
(interactive)
(evil-shift-right (region-beginning) (region-end))
(evil-normal-state)
(evil-visual-restore)))
;; Sets fn-delete to be right-delete
(imap (kbd "<kp-delete>") 'evil-delete-char)
;; Buffer navigation
(nmap "[b" 'previous-buffer)
(nmap "]b" 'next-buffer)
;; winner-mode: window layout undo/redo (see init-core.el)
(nmap (kbd "C-w u") 'winner-undo)
(nmap (kbd "C-w C-r") 'winner-redo)
;; Make ESC quit all the things
(nmap [escape] 'keyboard-quit)
(vmap [escape] 'keyboard-quit)
(define-key minibuffer-local-map [escape] 'minibuffer-quit)
(define-key minibuffer-local-ns-map [escape] 'minibuffer-quit)
(define-key minibuffer-local-completion-map [escape] 'minibuffer-quit)
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-quit)
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-quit)
(global-set-key [escape] 'evil-exit-emacs-state)
;; Restore bash-esque C-w/C-a/C-e in insert mode and the minibuffer
(dolist (x (list minibuffer-local-map evil-insert-state-map))
(define-key x (kbd "C-w") 'backward-kill-word)
(define-key x (kbd "C-a") 'move-beginning-of-line)
(define-key x (kbd "C-e") 'move-end-of-line)
(define-key x (kbd "C-u") 'backward-kill-line))
;; Auto-completion
(imap (kbd "C-SPC") 'ac-fuzzy-complete)
(imap (kbd "C-S-SPC") 'ac-quick-help)
;; see elisp/rotate-text.el
(nmap (kbd "RET") 'rotate-word-at-point)
(vmap (kbd "RET") 'rotate-region)
;;;; Ex Commands ;;;;;;;;;;;;;;;;
(cmap "e[dit]" 'ido-find-file)
(provide 'core-keymaps)