diff options
| author | Morgan Smith <Morgan.J.Smith@outlook.com> | 2020-10-17 12:02:42 -0400 |
|---|---|---|
| committer | Pierre Neidhardt <mail@ambrevar.xyz> | 2020-10-19 12:11:19 +0000 |
| commit | 26f08992ab9a087b51a1c48abcc868027630eaf9 (patch) | |
| tree | 0f71a339119d0ad008a56c169974dc5458188470 /modes/gnus | |
| parent | 918f9994174f0965613a6ae1412814fe868caea6 (diff) | |
gnus: tidy up bindings
Diffstat (limited to 'modes/gnus')
| -rw-r--r-- | modes/gnus/evil-collection-gnus.el | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/modes/gnus/evil-collection-gnus.el b/modes/gnus/evil-collection-gnus.el index 35c659a..8ae778f 100644 --- a/modes/gnus/evil-collection-gnus.el +++ b/modes/gnus/evil-collection-gnus.el @@ -37,15 +37,33 @@ gnus-server-mode-map gnus-summary-mode-map)) +(defvar evil-collection-gnus-common-normal-bindings + '("zz" gnus-recenter) + "Keybindings added to all gnus normal mode-maps. +Note that there is no gnus-common-mode-map") + ;;;###autoload (defun evil-collection-gnus-setup () "Set up `evil' bindings for `gnus'." - (evil-set-initial-state 'gnus-summary-mode 'normal) + + ;; For all gnus modes: + ;; - Set the initial state to 'normal + ;; - Inhibit insert + ;; - Use `evil-collection-gnus-common-normal-bindings' + (dolist (map evil-collection-gnus-maps) + (let* ((map-string (symbol-name map)) + (mode-string (string-trim-right map-string "-map")) + (mode (intern mode-string))) + (evil-set-initial-state mode 'normal) + (evil-collection-inhibit-insert-state map) + (apply #'evil-collection-define-key 'normal map + evil-collection-gnus-common-normal-bindings))) + (evil-collection-define-key 'normal 'gnus-summary-mode-map ;; quit "Q" 'gnus-summary-exit-no-update - "q" 'gnus-summary-exit "ZQ" 'gnus-summary-exit-no-update + "q" 'gnus-summary-exit "ZZ" 'gnus-summary-exit ;; motion @@ -99,7 +117,6 @@ "gr" 'gnus-summary-rescan-group "e" 'gnus-summary-edit-article "E" 'gnus-summary-mark-as-expirable - "zz" 'gnus-recenter "z/" 'gnus-summary-limit-map "zt" 'gnus-summary-toggle-header "x" 'gnus-summary-limit-to-unread @@ -212,15 +229,15 @@ "I" 'gnus-summary-increase-score "L" 'gnus-summary-lower-score) - (evil-set-initial-state 'gnus-article-mode 'normal) (evil-collection-define-key 'motion 'gnus-article-mode-map "F" 'gnus-article-followup-with-original "R" 'gnus-article-reply-with-original "W" 'gnus-article-wide-reply-with-original) (evil-collection-define-key 'normal 'gnus-article-mode-map ;; quit - "q" 'evil-window-delete + "Q" 'evil-window-delete "ZQ" 'evil-window-delete + "q" 'evil-window-delete "ZZ" 'evil-window-delete ;; Movement @@ -289,12 +306,12 @@ "gr" 'gnus-summary-show-article "gX" 'gnus-summary-browse-url) - (evil-set-initial-state 'gnus-group-mode 'normal) (evil-collection-define-key 'normal 'gnus-group-mode-map ;; quit + "Q" 'gnus-group-quit + "ZQ" 'gnus-group-quit "q" 'gnus-group-exit "ZZ" 'gnus-group-exit - "ZQ" 'gnus-group-quit ;; Movement "[[" 'gnus-group-prev-unread-group @@ -400,8 +417,13 @@ [mouse-2] 'gnus-mouse-pick-group "g?" 'gnus-group-help-map) - (evil-set-initial-state 'gnus-server-mode 'normal) (evil-collection-define-key 'normal 'gnus-server-mode-map + ;; quit + "Q" 'gnus-server-exit + "ZQ" 'gnus-server-exit + "q" 'gnus-server-exit + "ZZ" 'gnus-server-exit + (kbd "RET") 'gnus-server-read-server (kbd "SPC") 'gnus-server-read-server-in-server-buffer "C" 'gnus-server-close-server @@ -424,26 +446,25 @@ "p" 'gnus-server-yank-server "z" 'gnus-server-compact-server "M-c" 'gnus-server-close-all-servers - "M-o" 'gnus-server-open-all-servers - "q" 'gnus-server-exit - "ZZ" 'gnus-server-exit - "ZQ" 'gnus-server-exit) + "M-o" 'gnus-server-open-all-servers) - (evil-set-initial-state 'gnus-browse-mode 'normal) (evil-collection-define-key 'normal 'gnus-browse-mode-map - "u" 'gnus-browse-unsubscribe-current-group - (kbd "SPC") 'gnus-browse-read-group - (kbd "RET") 'gnus-browse-select-group + ;; quit + "Q" 'gnus-browse-exit + "ZQ" 'gnus-browse-exit "q" 'gnus-browse-exit "ZZ" 'gnus-browse-exit - "ZQ" 'gnus-browse-exit) - (evil-set-initial-state 'gnus-bookmark-bmenu-mode 'normal) + "u" 'gnus-browse-unsubscribe-current-group + (kbd "SPC") 'gnus-browse-read-group + (kbd "RET") 'gnus-browse-select-group) + (evil-collection-define-key 'normal 'gnus-bookmark-bmenu-mode-map ;; quit + "Q" 'quit-window + "ZQ" 'quit-window "q" 'quit-window "ZZ" 'quit-window - "ZQ" 'quit-window "g?" 'describe-mode |
