diff --git a/init/core-keymaps.el b/init/core-keymaps.el index f32f7a697..8854969aa 100644 --- a/init/core-keymaps.el +++ b/init/core-keymaps.el @@ -25,6 +25,10 @@ (global-set-key (kbd "s-/") 'evilnc-comment-or-uncomment-lines) (global-set-key (kbd "s-") 'toggle-frame-fullscreen) + (global-set-key (kbd "C-;") 'eval-expression) + (global-set-key (kbd "s-;") 'my/tmux-run) + (global-set-key (kbd "s-:") 'my/tmux-paste) + ;; Faster scrolling (mapc (lambda(map) (evil-define-key map my/mode-map (kbd "s-j") "5j") @@ -33,17 +37,16 @@ (nmap my/mode-map ;; Leader alternatives - (kbd "s-f") 'projectile-find-file + (kbd "s-t") 'projectile-find-file (kbd "s-F") 'projectile-ag (kbd "s-p") 'projectile-switch-project (kbd "s-m") 'my/recentf-ido-find-file (kbd "s-M") 'projectile-recentf (kbd "s-o") 'ido-find-file - (kbd "s-O") 'open-major-mode-conf + (kbd "s-d") 'dash-at-point (kbd "s-'") 'mc/mark-next-like-this (kbd "s-\"") 'mc/mark-previous-like-this - (kbd "C-s-'") 'mc/mark-all-like-this - (kbd "s-d") 'dash-at-point) + (kbd "C-s-'") 'mc/mark-all-like-this) (imap my/mode-map ;; Textmate-esque insert-line before/after @@ -56,19 +59,19 @@ (kbd "") 'backward-kill-line ;; Fixes delete - (kbd "") 'delete-char))) + (kbd "") 'delete-char) + + (imap emmet-mode-keymap + (kbd "s-e") 'emmet-expand-yas + (kbd "s-E") 'emmet-expand-line))) ;; Local keymaps ;;;;;;;;;;;;;;;; (evil-leader/set-leader ",") (evil-leader/set-key - "`" 'my/notes "'" 'mc/mark-next-like-this "\"" 'mc/mark-all-like-this "e" 'ido-find-file "E" 'my/initfiles - "d" 'dash-at-point - "f" 'projectile-find-file - "F" 'projectile-ag "g" 'git-gutter:stage-hunk "G" 'git-gutter:revert-hunk "m" 'my/recentf-ido-find-file ; recent GLOBAL files @@ -79,9 +82,8 @@ ";" 'helm-imenu ":" 'my/ido-goto-symbol "," 'ido-switch-buffer + "." 'projectile-find-file "=" 'align-regexp - "x" 'my/kill-other-buffers - "X" 'my/kill-all-buffers (kbd "RET") 'org-capture) ;; Remap ; to : - SPC and shift-SPC replace ; and , - have to use @@ -90,10 +92,6 @@ (define-key evil-visual-state-map ";" 'evil-ex) (nmap my/mode-map - (kbd "C-;") 'eval-expression ; Elisp command - (kbd "s-;") 'my/tmux-run - (kbd "s-:") 'my/tmux-paste - ;; Moving rows rather than lines (in case of wrapping) "j" 'evil-next-visual-line "k" 'evil-previous-visual-line @@ -174,12 +172,14 @@ (evil-ex-define-cmd "retab" 'untabify) ; TODO: Implement proper retab defun (evil-ex-define-cmd "msg" 'view-echo-area-messages) (evil-ex-define-cmd "gtd" 'open-gtd) -(evil-ex-define-cmd "notes" 'open-notes) +(evil-ex-define-cmd "n[otes]" 'my/notes) (evil-ex-define-cmd "tcd" (λ (my/tmux-chdir (projectile-project-root)))) +(evil-ex-define-cmd "ag" 'projectile-ag) +(evil-ex-define-cmd "el" 'my/initfiles) +(evil-ex-define-cmd "ba" (lambda(bang) (interactive) (if bang (my/kill-all-buffers) (my/kill-other-buffers)))) ;;;; Keymap fixes ;;;;;;;;;;;;;;; ;; Make ESC quit all the things -(nvmap my/mode-map [escape] 'keyboard-quit) (mapc (lambda (map) (define-key map [escape] 'minibuffer-quit)) (list minibuffer-local-map @@ -187,9 +187,9 @@ minibuffer-local-completion-map minibuffer-local-must-match-map minibuffer-local-isearch-map)) -(global-set-key [escape] 'evil-exit-emacs-state) +(define-key evil-emacs-state-map [escape] 'evil-exit-emacs-state) ;; Close help window with escape -(define-key global-map [escape] 'quit-window) +(define-key help-mode-map [escape] 'kill-buffer-and-window) ;; Restore bash-esque keymaps in insert mode and the minibuffer (mapc (lambda (map) @@ -197,7 +197,6 @@ (define-key map (kbd "C-e") 'move-end-of-line) (define-key map (kbd "C-u") 'backward-kill-line)) (list minibuffer-local-map minibuffer-local-ns-map evil-insert-state-map)) - (define-key evil-insert-state-map (kbd "C-w") 'backward-kill-word) (define-key minibuffer-local-map (kbd "C-w") 'ido-delete-backward-word-updir) @@ -211,10 +210,6 @@ (define-key ido-completion-map " " 'ido-exit-minibuffer))) ;; -(defun backward-kill-line () - (interactive) - (evil-delete (point-at-bol) (point))) - (defun minibuffer-quit () "Abort recursive edit. In Delete Selection mode, if the mark is active, just deactivate it; @@ -225,6 +220,10 @@ (when (get-buffer "*Completions*") (delete-windows-on "*Completions*")) (abort-recursive-edit))) +(defun backward-kill-line () + (interactive) + (evil-delete (point-at-bol) (point))) + ;; Mimic expandtab in vim (defun backward-delete-whitespace-to-column () "delete back to the previous column of whitespace, or as much whitespace as possible, @@ -240,6 +239,5 @@ or just one char if that's not possible" (backward-delete-char-untabify (- (match-end 1) (match-beginning 1))) (call-interactively 'backward-delete-char-untabify)))))) - ;; (provide 'core-keymaps) diff --git a/init/init-project.el b/init/init-project.el index 9dc6253a6..7a6bb0651 100644 --- a/init/init-project.el +++ b/init/init-project.el @@ -9,7 +9,10 @@ ;; current subdir, instead of the current subdir of this dired buffer dired-dwim-target t)))) -(use-package ag :ensure t :defer t) +(use-package ag :ensure t :defer t + :config + (define-key ag-mode-map [escape] 'kill-buffer-and-window)) + (use-package helm :ensure t :defer t) (use-package grizzl :ensure t :defer t) (use-package neotree :ensure t :commands (neotree-show neotree-hide neotree-toggle)) diff --git a/init/mod-webdev.el b/init/mod-webdev.el index 1617d43fd..2a8e61a3e 100644 --- a/init/mod-webdev.el +++ b/init/mod-webdev.el @@ -30,19 +30,23 @@ (setq web-mode-ac-sources-alist '(("css" . (ac-source-css-property)))) - (setq web-mode-markup-indent-offset 4) - (setq web-mode-css-indent-offset 4) - (setq web-mode-code-indent-offset 4) + (setq web-mode-markup-indent-offset 4 + web-mode-css-indent-offset 4 + web-mode-code-indent-offset 4) - (nvmap web-mode-map "]a" 'web-mode-attribute-next) - (nvmap web-mode-map "]t" 'web-mode-tag-next) - (nvmap web-mode-map "[t" 'web-mode-tag-previous) - (nvmap web-mode-map "]T" 'web-mode-element-child) - (nvmap web-mode-map "[T" 'web-mode-element-parent) - (nmap web-mode-map "zf" 'web-mode-fold-or-unfold) - (nmap web-mode-map ",t" 'web-mode-element-rename) + (nvmap web-mode-map + "]a" 'web-mode-attribute-next + "]t" 'web-mode-tag-next + "[t" 'web-mode-tag-previous + "]T" 'web-mode-element-child + "[T" 'web-mode-element-parent) + + (nmap web-mode-map + "zf" 'web-mode-fold-or-unfold + ",ct" 'web-mode-element-rename) (define-key web-mode-map (kbd "s-/") 'web-mode-comment-or-uncomment) + (add-hook 'web-mode-hook 'jekyll-mode-maybe))) (use-package tern :ensure t @@ -58,17 +62,13 @@ (lambda () (tern-mode t) (tern-ac-setup) - (imap js-mode-map (kbd "C-SPC") 'tern-ac-complete) - ))) + (imap js-mode-map (kbd "C-SPC") 'tern-ac-complete + )))) (use-package emmet-mode :ensure t :defer t :config - (progn - (imap emmet-mode-keymap (kbd "s-e") 'emmet-expand-yas) - (imap emmet-mode-keymap (kbd "s-E") 'emmet-expand-line) - - (setq emmet-move-cursor-between-quotes t)) + (setq emmet-move-cursor-between-quotes t) :init (progn (add-hook 'scss-mode-hook 'emmet-mode)