;; instantly display current keystrokes in mini buffer (setq echo-keystrokes 0.02) ;; auto-indent on RET (define-key global-map (kbd "RET") 'newline-and-indent) ;; alternate binding to search next occurrence with isearch without ;; exiting isearch (define-key isearch-mode-map (kbd "S-") 'isearch-repeat-forward) (define-key isearch-mode-map (kbd "M-S-") 'isearch-repeat-backward) ;; Make quit as much as possible (define-key minibuffer-local-map (kbd "") 'keyboard-escape-quit) (define-key evil-visual-state-map (kbd "") 'keyboard-quit) (define-key minibuffer-local-ns-map (kbd "") 'keyboard-escape-quit) (define-key minibuffer-local-completion-map (kbd "") 'keyboard-escape-quit) (define-key minibuffer-local-must-match-map (kbd "") 'keyboard-escape-quit) (define-key minibuffer-local-isearch-map (kbd "") 'keyboard-escape-quit) ;; --------------------------------------------------------------------------- ;; evil-leader key bindings ;; --------------------------------------------------------------------------- ;; Universal argument --------------------------------------------------------- (evil-leader/set-key "u" 'universal-argument) ;; shell command ------------------------------------------------------------- (evil-leader/set-key "!" 'shell-command) ;; applications --------------------------------------------------------------- (evil-leader/set-key "ac" 'calc-dispatch "ad" 'dired "ai" 'irc "ap" 'proced "ase" 'eshell "asi" 'shell "au" 'undo-tree-visualize) ;; buffers -------------------------------------------------------------------- (evil-leader/set-key "bb" 'spacemacs/alternate-buffer ;; switch back and forth between two last buffers "bd" 'delete-current-buffer-file "be" 'spacemacs/safe-erase-buffer "bK" 'kill-other-buffers "bk" 'ido-kill-buffer "b C-k" 'kill-matching-buffers-rudely "bn" 'switch-to-next-buffer "bp" 'switch-to-prev-buffer "bR" 'spacemacs/safe-revert-buffer "br" 'rename-current-buffer-file "bw" 'toggle-read-only) ;; Cycling settings ----------------------------------------------------------- (evil-leader/set-key "Tn" 'spacemacs/cycle-spacemacs-theme) ;; describe functions --------------------------------------------------------- (evil-leader/set-key "hdf" 'describe-function "hdk" 'describe-key "hdm" 'describe-mode "hdv" 'describe-variable) ;; errors --------------------------------------------------------------------- (evil-leader/set-key "en" 'next-error "ep" 'previous-error) ;; find ----------------------------------------------------------------------- (evil-leader/set-key "ff" 'ido-find-file "fg" 'rgrep) ;; file ----------------------------------------------------------------------- (evil-leader/set-key "fei" 'find-user-init-file "fes" 'find-spacemacs-file "fec" 'find-contrib-file "fed" 'find-dotfile "fS" 'evil-write-all "fs" 'evil-write "fy" 'show-and-copy-buffer-filename) ;; insert stuff --------------------------------------------------------------- (evil-leader/set-key "ij" (lambda (count) "Insert a new line below with no identation." (interactive "p") (save-excursion (evil-move-end-of-line) (while (> count 0) (insert "\n") (setq count (1- count))))) "ik" 'evil-insert-line-above) ;; format --------------------------------------------------------------------- ;; j k key binding for a frequent action: go and indent line below the point ;; J split the current line at point and indent it (evil-leader/set-key "J" 'sp-split-sexp "jJ" 'spacemacs/split-and-new-line "jj" 'sp-newline "jk" 'evil-goto-next-line-and-indent) ;; navigation ----------------------------------------------------------------- (evil-leader/set-key "jh" 'spacemacs/push-mark-and-goto-beginning-of-line "jl" 'spacemacs/push-mark-and-goto-end-of-line) ;; Compilation ---------------------------------------------------------------- (evil-leader/set-key "cc" 'helm-make-projectile) (evil-leader/set-key "cC" 'compile) (evil-leader/set-key "cr" 'recompile) ;; narrow & widen ------------------------------------------------------------- (unless (ht-contains? config-system-all-packages 'fancy-narrow) (evil-leader/set-key "nr" 'narrow-to-region "np" 'narrow-to-page "nf" 'narrow-to-defun "nw" 'widen)) ;; spell check --------------------------------------------------------------- (evil-leader/set-key "Sc" 'cofi/helm-flyspell-correct "Sn" 'flyspell-goto-next-error) ;; toggle --------------------------------------------------------------------- (evil-leader/set-key "t8" 'toggle-fill-column-indicator "tF" 'toggle-frame-fullscreen "tf" 'fringe-mode "tl" 'toggle-truncate-lines "tL" 'visual-line-mode "tM" 'toggle-frame-maximized "tn" 'global-linum-mode "t SPC" 'whitespace-mode) ;; quit ----------------------------------------------------------------------- (evil-leader/set-key "q s" 'spacemacs/save-buffers-kill-emacs "q q" 'spacemacs/kill-emacs) ;; window --------------------------------------------------------------------- ;; (evil-leader/set-key "wb" 'evenly-split-window-right) (evil-leader/set-key "w2" 'layout-double-columns "w3" 'layout-triple-columns "wc" 'delete-window "wC" 'delete-other-windows "wd" 'toggle-current-window-dedication "wH" 'evil-window-move-far-left "wh" 'evil-window-left "wJ" 'evil-window-move-very-bottom "wj" 'evil-window-down "wK" 'evil-window-move-very-top "wk" 'evil-window-up "wL" 'evil-window-move-far-right "wl" 'evil-window-right "wM" 'toggle-maximize-centered-buffer "wm" 'toggle-maximize-buffer "wo" 'other-frame "wr" 'rotate-windows "wR" 'rotate-windows-backward ;; "wv" 'evenly-split-window-below) "ws" 'split-window-below "w-" 'split-window-below "wS" 'spacemacs/resize-window-overlay-map "wU" 'winner-redo "wu" 'winner-undo "wv" 'split-window-right "w/" 'split-window-right "ww" 'other-window) ;; text ----------------------------------------------------------------------- (evil-leader/set-key "zx=" 'spacemacs/reset-font-size "zx+" 'spacemacs/scale-up-font "zx-" 'spacemacs/scale-down-font "xdw" 'delete-trailing-whitespace "xtc" 'transpose-chars "xtl" 'transpose-lines "xtw" 'transpose-words "xU" 'upcase-region "xu" 'downcase-region "xwC" 'count-words-analysis "xwc" 'count-words-region) ;; google translate ----------------------------------------------------------- (evil-leader/set-key "xgl" 'set-google-translate-languages) ;; Lisps ---------------------------------------------------------------------- (evil-leader/set-key-for-mode 'emacs-lisp-mode "mhd" 'elisp-slime-nav-describe-elisp-thing-at-point "mg" 'elisp-slime-nav-find-elisp-thing-at-point "mta" 'spacemacs/ert-run-tests-buffer "mtf" 'ert)