Rewrote/improved core initfiles
This commit is contained in:
parent
8fa05453eb
commit
f484556a8d
8 changed files with 345 additions and 151 deletions
|
@ -1,29 +1,25 @@
|
|||
(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)
|
||||
(gmap (kbd "C-x C-p") 'package-list-packages)
|
||||
|
||||
(if (is-osx) (progn
|
||||
(gmap (kbd "s-+") 'text-scale-increase)
|
||||
(gmap (kbd "s--") 'text-scale-decrease)
|
||||
(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 o") 'send-dir-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)
|
||||
|
||||
;; Evaluating elisp
|
||||
(nmap (kbd "C-c x") 'eval-buffer)
|
||||
(vmap (kbd "C-c x") 'eval-region)
|
||||
))
|
||||
|
||||
(map (kbd "C-c t") (lambda() (interactive) (eshell t)))
|
||||
(map (kbd "C-c t") (lambda() (interactive) (eshell t))) ; open in terminal
|
||||
(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)
|
||||
|
@ -31,98 +27,188 @@
|
|||
(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)
|
||||
"e" 'ido-find-file
|
||||
"E" 'my-init
|
||||
"p" 'projectile-switch-project
|
||||
"f" 'projectile-find-file
|
||||
"F" 'projectile-ag
|
||||
"r" 'projectile-recentf
|
||||
"M" 'open-major-mode-conf
|
||||
"g" 'magit-status
|
||||
"/" 'imenu
|
||||
"\\" 'toggle-speedbar
|
||||
";" 'helm-imenu
|
||||
"," 'ido-switch-buffer
|
||||
"=" 'align-regexp
|
||||
"x" 'kill-this-buffer
|
||||
"X" 'kill-buffer-and-window
|
||||
)
|
||||
|
||||
(nmap ";" 'exil-ex)
|
||||
(nmap
|
||||
";" 'evil-ex
|
||||
|
||||
; Moving rows rather than lines (in case of wrapping)
|
||||
"j" 'evil-next-visual-line'
|
||||
"k" 'evil-previous-visual-line
|
||||
|
||||
"X" 'evil-destroy ; Delete without yanking
|
||||
"Y" 'copy-to-end-of-line ; nnoremap Y y$
|
||||
"zz" 'kill-this-buffer ; Close buffer
|
||||
|
||||
"]b" 'previous-buffer
|
||||
"[b" 'next-buffer
|
||||
|
||||
; winner-mode: window layout undo/redo (see init-core.el)
|
||||
(kbd "C-w u") 'winner-undo
|
||||
(kbd "C-w C-r") 'winner-redo
|
||||
|
||||
; Increment/decrement number under cursor
|
||||
(kbd "<C-tab>") 'evil-numbers/inc-at-pt
|
||||
(kbd "<S-C-tab>") 'evil-numbers/dec-at-pt
|
||||
|
||||
; Map split navigation with arrow keys
|
||||
(kbd "<up>") 'windmove-up
|
||||
(kbd "<down>") 'windmove-down
|
||||
(kbd "<left>") 'windmove-left
|
||||
(kbd "<right>") 'windmove-right
|
||||
)
|
||||
|
||||
(vmap
|
||||
; vnoremap < <gv
|
||||
"<" (lambda ()
|
||||
(interactive)
|
||||
(evil-shift-left (region-beginning) (region-end))
|
||||
(evil-normal-state)
|
||||
(evil-visual-restore))
|
||||
; vnoremap > >gv
|
||||
">" (lambda ()
|
||||
(interactive)
|
||||
(evil-shift-right (region-beginning) (region-end))
|
||||
(evil-normal-state)
|
||||
(evil-visual-restore))
|
||||
)
|
||||
|
||||
(imap
|
||||
; Auto-completion
|
||||
(kbd "C-SPC") 'ac-fuzzy-complete
|
||||
(kbd "C-S-SPC") 'ac-quick-help
|
||||
)
|
||||
|
||||
;; Commenting lines
|
||||
(nmap "gcc" 'evilnc-comment-or-uncomment-lines)
|
||||
(vmap "gc" 'evilnc-comment-or-uncomment-lines)
|
||||
|
||||
;; Rotate-text (see elisp/rotate-text.el)
|
||||
(nmap (kbd "RET") 'rotate-word-at-point)
|
||||
(vmap (kbd "RET") 'rotate-region)
|
||||
|
||||
;; Enable TAB to do matchit
|
||||
(evil-define-key 'normal evil-matchit-mode-map (kbd "TAB") 'evilmi-jump-items)
|
||||
|
||||
;; 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)
|
||||
;;;; Org-Mode ;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Enable TAB to do matchit (won't work in visual)
|
||||
(evil-define-key 'normal evil-matchit-mode-map (kbd "TAB") 'evilmi-jump-items)
|
||||
(evil-define-key 'normal evil-org-mode-map
|
||||
"gh" 'outline-up-heading
|
||||
"gj" (if (fboundp 'org-forward-same-level) ;to be backward compatible with older org version
|
||||
'org-forward-same-level
|
||||
'org-forward-heading-same-level)
|
||||
"gk" (if (fboundp 'org-backward-same-level)
|
||||
'org-backward-same-level
|
||||
'org-backward-heading-same-level)
|
||||
"gl" 'outline-next-visible-heading
|
||||
"t" 'org-todo
|
||||
"T" '(lambda () (interactive) (evil-org-eol-call (lambda() (org-insert-todo-heading nil))))
|
||||
"H" 'org-beginning-of-line
|
||||
"L" 'org-end-of-line
|
||||
";t" 'org-show-todo-tree
|
||||
"o" '(lambda () (interactive) (evil-org-eol-call 'always-insert-item))
|
||||
"O" '(lambda () (interactive) (evil-org-eol-call 'org-insert-heading))
|
||||
"$" 'org-end-of-line
|
||||
"^" 'org-beginning-of-line
|
||||
"<" 'org-metaleft
|
||||
">" 'org-metaright
|
||||
";a" 'org-agenda
|
||||
"-" 'org-cycle-list-bullet
|
||||
(kbd "TAB") 'org-cycle)
|
||||
|
||||
;; 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)
|
||||
;; normal & insert state shortcuts.
|
||||
(mapc (lambda (state)
|
||||
(evil-define-key state evil-org-mode-map
|
||||
(kbd "M-l") 'org-metaright
|
||||
(kbd "M-h") 'org-metaleft
|
||||
(kbd "M-k") 'org-metaup
|
||||
(kbd "M-j") 'org-metadown
|
||||
(kbd "M-L") 'org-shiftmetaright
|
||||
(kbd "M-H") 'org-shiftmetaleft
|
||||
(kbd "M-K") 'org-shiftmetaup
|
||||
(kbd "M-J") 'org-shiftmetadown
|
||||
(kbd "M-o") '(lambda () (interactive)
|
||||
(evil-org-eol-call
|
||||
'(lambda()
|
||||
(org-insert-heading)
|
||||
(org-metaright))))
|
||||
(kbd "M-t") '(lambda () (interactive)
|
||||
(evil-org-eol-call
|
||||
'(lambda()
|
||||
(org-insert-todo-heading nil)
|
||||
(org-metaright))))
|
||||
))
|
||||
'(normal insert))
|
||||
|
||||
|
||||
;;;; Ex Commands ;;;;;;;;;;;;;;;;
|
||||
|
||||
(cmap "e[dit]" 'ido-find-file)
|
||||
; (cmap "e[dit]" 'find-file)
|
||||
(cmap "git" 'magit-status)
|
||||
|
||||
|
||||
;;;; Keymap fixes ;;;;;;;;;;;;;;;
|
||||
|
||||
;; Make ESC quit all the things
|
||||
(nmap [escape] 'keyboard-quit)
|
||||
(vmap [escape] 'keyboard-quit)
|
||||
(mapc (lambda (map)
|
||||
(define-key map [escape] 'minibuffer-quit))
|
||||
(list
|
||||
minibuffer-local-map
|
||||
minibuffer-local-ns-map
|
||||
minibuffer-local-completion-map
|
||||
minibuffer-local-must-match-map
|
||||
minibuffer-local-isearch-map))
|
||||
(global-set-key [escape] 'evil-exit-emacs-state)
|
||||
;; Close help window with escape
|
||||
(define-key global-map [escape] 'quit-window)
|
||||
(define-key ag-mode-map [escape] 'quit-window)
|
||||
|
||||
;; Restore bash-esque C-w/C-a/C-e in insert mode and the minibuffer
|
||||
(mapc (lambda (map)
|
||||
(define-key map (kbd "C-w") 'backward-kill-word)
|
||||
(define-key map (kbd "C-a") 'move-beginning-of-line)
|
||||
(define-key map (kbd "C-e") 'move-end-of-line)
|
||||
(define-key map (kbd "C-u") 'backward-kill-line))
|
||||
(list minibuffer-local-map evil-insert-state-map))
|
||||
|
||||
(add-hook 'ido-setup-hook '(lambda ()
|
||||
;; take that "Text is read-only" and stick it where emacs don't shine!
|
||||
(define-key ido-completion-map (kbd "<backspace>") 'ido-delete-backward-updir)
|
||||
(define-key ido-completion-map "\C-n" 'ido-next-match)
|
||||
(define-key ido-completion-map "\C-f" 'ido-next-match)
|
||||
(define-key ido-completion-map "\C-p" 'ido-prev-match)
|
||||
(define-key ido-completion-map "\C-b" 'ido-prev-match)
|
||||
|
||||
;; Auto-complete on tab/space (why is it called ido-exit-minibuffer?)
|
||||
(define-key ido-completion-map " " 'ido-exit-minibuffer)
|
||||
;; TAB, by default, inserts a literal \t ಠ_ಠ
|
||||
(define-key ido-completion-map (kbd "TAB") 'ido-exit-minibuffer)))
|
||||
|
||||
;;
|
||||
(provide 'core-keymaps)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue