From ece02e090161405a6c5352af7a387107623363e4 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 24 Jul 2017 15:25:45 +0100 Subject: [PATCH] Emacs: Evil: Use 'motion as initial state in most special modes --- .emacs.d/lisp/init-evil-elfeed.el | 4 +-- .emacs.d/lisp/init-evil-emms.el | 3 ++- .emacs.d/lisp/init-evil-package.el | 14 +++++----- .emacs.d/lisp/init-evil-pdf.el | 10 ++++---- .emacs.d/lisp/init-evil-transmission.el | 10 ++++---- .emacs.d/lisp/init-evil.el | 34 ++++++++++++------------- 6 files changed, 37 insertions(+), 38 deletions(-) diff --git a/.emacs.d/lisp/init-evil-elfeed.el b/.emacs.d/lisp/init-evil-elfeed.el index 12054dc1..dfa19616 100644 --- a/.emacs.d/lisp/init-evil-elfeed.el +++ b/.emacs.d/lisp/init-evil-elfeed.el @@ -1,8 +1,8 @@ ;;; Evil+Elfeed -(evil-set-initial-state 'elfeed-search-mode 'normal) +(evil-set-initial-state 'elfeed-search-mode 'motion) -(evil-define-key 'normal elfeed-search-mode-map +(evil-define-key 'motion elfeed-search-mode-map (kbd "") 'elfeed-search-show-entry "R" 'elfeed-search-fetch "S" 'elfeed-search-set-filter diff --git a/.emacs.d/lisp/init-evil-emms.el b/.emacs.d/lisp/init-evil-emms.el index 59128835..08aedeed 100644 --- a/.emacs.d/lisp/init-evil-emms.el +++ b/.emacs.d/lisp/init-evil-emms.el @@ -1,6 +1,7 @@ ;;; Evil+EMMS + (dolist (mode '(emms-browser-mode emms-playlist-mode)) - (evil-set-initial-state mode 'normal)) + (evil-set-initial-state mode 'motion)) (defun evil/emms-playlist-mode-insert-newline-above () "Insert a newline above point." diff --git a/.emacs.d/lisp/init-evil-package.el b/.emacs.d/lisp/init-evil-package.el index 291c0e88..34927ab3 100644 --- a/.emacs.d/lisp/init-evil-package.el +++ b/.emacs.d/lisp/init-evil-package.el @@ -1,10 +1,10 @@ ;;; Evil+Package-menu-mode -(evil-set-initial-state 'package-menu-mode 'normal) -(evil-define-key 'normal package-menu-mode-map "q" 'quit-window) -(evil-define-key 'normal package-menu-mode-map "i" 'package-menu-mark-install) -(evil-define-key 'normal package-menu-mode-map "U" 'package-menu-mark-upgrades) -(evil-define-key 'normal package-menu-mode-map "u" 'package-menu-mark-unmark) -(evil-define-key 'normal package-menu-mode-map "d" 'package-menu-mark-delete) -(evil-define-key 'normal package-menu-mode-map "x" 'package-menu-execute) +(evil-set-initial-state 'package-menu-mode 'motion) +(evil-define-key 'motion package-menu-mode-map "q" 'quit-window) +(evil-define-key 'motion package-menu-mode-map "i" 'package-menu-mark-install) +(evil-define-key 'motion package-menu-mode-map "U" 'package-menu-mark-upgrades) +(evil-define-key 'motion package-menu-mode-map "u" 'package-menu-mark-unmark) +(evil-define-key 'motion package-menu-mode-map "d" 'package-menu-mark-delete) +(evil-define-key 'motion package-menu-mode-map "x" 'package-menu-execute) (provide 'init-evil-package) diff --git a/.emacs.d/lisp/init-evil-pdf.el b/.emacs.d/lisp/init-evil-pdf.el index fdc4ad68..bc848689 100644 --- a/.emacs.d/lisp/init-evil-pdf.el +++ b/.emacs.d/lisp/init-evil-pdf.el @@ -1,9 +1,9 @@ ;;; Evil+pdftools -(dolist (mode '(pdf-view-mode)) ; TODO: Add other modes? - (evil-set-initial-state mode 'normal)) +;; TODO: Add other modes? Looks like it's not needed. +(evil-set-initial-state 'pdf-view-mode 'motion) -(evil-define-key 'normal pdf-view-mode-map +(evil-define-key 'motion pdf-view-mode-map (kbd "") 'image-next-line "j" 'pdf-view-next-line-or-next-page "k" 'pdf-view-previous-line-or-previous-page @@ -67,9 +67,9 @@ "zm" 'pdf-view-midnight-minor-mode "zp" 'pdf-view-printer-minor-mode) -(evil-define-key 'normal pdf-outline-minor-mode-map "o" 'pdf-outline) +(evil-define-key 'motion pdf-outline-minor-mode-map "o" 'pdf-outline) -(evil-define-key 'normal pdf-occur-buffer-mode-map +(evil-define-key 'motion pdf-occur-buffer-mode-map (kbd "RET") 'pdf-occur-goto-occurrence "\C-o" 'pdf-occur-view-occurrence (kbd "SPC") 'pdf-occur-view-occurrence diff --git a/.emacs.d/lisp/init-evil-transmission.el b/.emacs.d/lisp/init-evil-transmission.el index 1d3a40ae..1b2ca31c 100644 --- a/.emacs.d/lisp/init-evil-transmission.el +++ b/.emacs.d/lisp/init-evil-transmission.el @@ -1,8 +1,8 @@ ;;; Evil+Transmission -(evil-set-initial-state 'transmission-mode 'normal) +(evil-set-initial-state 'transmission-mode 'motion) -(evil-define-key 'normal transmission-mode-map +(evil-define-key 'motion transmission-mode-map (kbd "") 'transmission-files "D" 'transmission-delete "S" 'tabulated-list-sort @@ -20,7 +20,7 @@ "c" 'transmission-verify "C" 'transmission-set-bandwidth-priority) -(evil-define-key 'normal transmission-files-mode-map +(evil-define-key 'motion transmission-files-mode-map (kbd "") 'transmission-find-file "\M-l" 'transmission-display-file "!" 'transmission-files-command @@ -38,7 +38,7 @@ "U" 'transmission-files-want "C" 'transmission-files-priority) -(evil-define-key 'normal transmission-info-mode-map +(evil-define-key 'motion transmission-info-mode-map "r" 'transmission-trackers-remove "c" 'transmission-copy-magnet "d" 'transmission-set-torrent-download @@ -51,7 +51,7 @@ "I" 'transmission-trackers-add "C" 'transmission-set-bandwidth-priority) -(evil-define-key 'normal transmission-peers-mode-map +(evil-define-key 'motion transmission-peers-mode-map "S" 'tabulated-list-sort "i" 'transmission-info "q" 'quit-window) diff --git a/.emacs.d/lisp/init-evil.el b/.emacs.d/lisp/init-evil.el index b971135c..a79aa571 100644 --- a/.emacs.d/lisp/init-evil.el +++ b/.emacs.d/lisp/init-evil.el @@ -90,23 +90,6 @@ See `eshell' for the numeric prefix ARG." "G" 'helm-grep-git-all-or-ag "r" 'helm-resume)) - -;; Motion map: useful for `Info-mode', `help-mode', etc. -;; See `evil-motion-state-modes'. -(evil-global-set-key 'motion (kbd "TAB") 'forward-button) -(evil-global-set-key 'motion (kbd "") 'backward-button) -(evil-define-key 'motion Info-mode-map - (kbd "S-SPC") 'Info-scroll-up - "\C-f" 'Info-scroll-up - "\C-b" 'Info-scroll-down - "\M-sf" 'Info-goto-node - "gg" 'evil-goto-first-line) -(evil-define-key 'motion help-mode-map - (kbd "S-SPC") 'scroll-up-command - "\C-f" 'scroll-up-command - "\C-b" 'scroll-down-command - "\C-o" 'help-go-back) - ;;; Term mode should be in emacs state. It confuses 'vi' otherwise. ;;; Upstream will not change this: ;;; https://github.com/emacs-evil/evil/issues/854#issuecomment-309085267 @@ -198,7 +181,22 @@ See `eshell' for the numeric prefix ARG." -;; TODO: Use motion map for package, transmission, emms, elfeed...? +;; Motion map: useful for `Info-mode', `help-mode', etc. +;; See `evil-motion-state-modes'. +(evil-global-set-key 'motion (kbd "TAB") 'forward-button) +(evil-global-set-key 'motion (kbd "") 'backward-button) +(evil-define-key 'motion Info-mode-map + (kbd "S-SPC") 'Info-scroll-up + "\C-f" 'Info-scroll-up + "\C-b" 'Info-scroll-down + "\M-sf" 'Info-goto-node + "gg" 'evil-goto-first-line) +(evil-define-key 'motion help-mode-map + (kbd "S-SPC") 'scroll-up-command + "\C-f" 'scroll-up-command + "\C-b" 'scroll-down-command + "\C-o" 'help-go-back) + (with-eval-after-load 'transmission (require 'init-evil-transmission)) (with-eval-after-load 'elfeed (require 'init-evil-elfeed))