1
0
mirror of https://github.com/jojojames/evil-collection.git synced 2024-06-22 07:06:37 +02:00

gnus: refine and add gnus-bookmark keybindings

This commit is contained in:
condy 2020-10-04 00:54:58 +08:00 committed by James N
parent a36f742c21
commit 0945c13b5b

View File

@ -30,17 +30,18 @@
(require 'gnus nil t)
(require 'evil-collection)
(defconst evil-collection-gnus-maps '(gnus-summary-mode-map
gnus-article-mode-map
(defconst evil-collection-gnus-maps '(gnus-article-mode-map
gnus-bookmark-bmenu-mode-map
gnus-browse-mode-map
gnus-group-mode-map
gnus-server-mode-map
gnus-browse-mode-map))
gnus-summary-mode-map))
;;;###autoload
(defun evil-collection-gnus-setup ()
"Set up `evil' bindings for `gnus'."
(evil-set-initial-state 'gnus-summary-mode 'normal)
(evil-define-key 'normal gnus-summary-mode-map
(evil-collection-define-key 'normal 'gnus-summary-mode-map
;; motion
(kbd "<tab>") 'gnus-summary-widget-forward
(kbd "<backtab>") 'gnus-summary-widget-backward
@ -184,42 +185,128 @@
"ZZ" 'gnus-summary-exit)
(evil-set-initial-state 'gnus-article-mode 'normal)
(evil-define-key 'normal gnus-article-mode-map
"r" 'gnus-summary-reply
"R" 'gnus-summary-reply-with-original
"q" 'evil-window-delete)
(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
"ZQ" 'evil-window-delete
"ZZ" 'evil-window-delete
;; Movement
(kbd "TAB") 'forward-button
(kbd "<backtab>") 'backward-button
(kbd "SPC") 'gnus-article-goto-next-page
(kbd "DEL") 'gnus-article-goto-prev-page
(kbd "S-SPC") 'gnus-article-goto-prev-page
;; Reply
"r" 'gnus-summary-reply
;; Composing
"C" 'gnus-article-mail
"cc" 'gnus-article-mail
;; Actions
(kbd "C-]") 'gnus-article-refer-article
"s" 'gnus-article-show-summary
"E" 'gnus-article-read-summary-keys
(kbd "C-c C-f") 'gnus-summary-mail-forward)
(evil-set-initial-state 'gnus-group-mode 'normal)
(evil-define-key 'normal gnus-group-mode-map
(evil-collection-define-key 'normal 'gnus-group-mode-map
;; quit
"q" 'gnus-group-exit
"ZZ" 'gnus-group-exit
"ZQ" 'gnus-group-quit
"q" 'gnus-group-exit
"ZZ" 'gnus-group-exit
"ZQ" 'gnus-group-quit
"x" 'gnus-group-kill-group
"p" 'gnus-group-yank-group
;; Movement
"k" 'gnus-group-prev-group
"j" 'gnus-group-next-group
"[[" 'gnus-group-prev-unread-group
"]]" 'gnus-group-next-unread-group
"gk" 'gnus-group-prev-unread-group
"gj" 'gnus-group-next-unread-group
; Marking
"m" 'gnus-group-mark-group
"u" 'gnus-group-unmark-group
"U" 'gnus-group-unmark-all-groups
"M" 'gnus-group-mark-buffer
"*" 'gnus-group-mark-buffer
"%" 'gnus-group-mark-regexp
; Searching
"s" 'gnus-group-apropos
"S" 'gnus-group-description-apropos
"^" 'gnus-group-enter-server-mode
;; Composing, like mu4e
"C" 'gnus-group-mail
"cc" 'gnus-group-mail
"ci" 'gnus-group-news
;; Actions
"." 'gnus-group-first-unread-group
"A" 'gnus-activate-all-groups
"B" 'gnus-group-browse-foreign-server
"E" 'gnus-group-edit-group
"F" 'gnus-group-find-new-groups
"J" 'gnus-group-jump-to-group
"R" 'gnus-group-rename-group
"X" 'gnus-group-expunge-group
(kbd "RET") 'gnus-group-select-group
"g?" 'gnus-group-help-map
"a" 'gnus-group-mail)
(kbd "SPC") 'gnus-group-read-group
"gr" 'gnus-group-get-new-news-this-group
"gR" 'gnus-group-get-new-news
"gu" 'gnus-group-unsubscribe-current-group
"gU" 'gnus-group-unsubscribe-group
"gc" 'gnus-group-catchup-current
"gC" 'gnus-group-catchup-current-all
"ge" 'gnus-group-expire-articles
"gE" 'gnus-group-expire-all-groups
;; Deleting & Pasting
"dd" 'gnus-group-kill-group
"D" 'gnus-group-kill-group
"p" 'gnus-group-yank-group
"P" 'gnus-group-yank-group
;; Marking
"m" 'gnus-group-mark-group
"u" 'gnus-group-unmark-group
"U" 'gnus-group-unmark-all-groups
"M" 'gnus-group-mark-buffer
"*" 'gnus-group-mark-buffer
"%" 'gnus-group-mark-regexp
;; Searching
"s" 'gnus-group-apropos
"S" 'gnus-group-description-apropos
;; Sorting
"oa" 'gnus-group-sort-groups-by-alphabet
"ol" 'gnus-group-sort-groups-by-level
"om" 'gnus-group-sort-groups-by-method
"on" 'gnus-group-sort-groups-by-real-name
"or" 'gnus-group-sort-groups-by-rank
"os" 'gnus-group-sort-groups
"ou" 'gnus-group-sort-groups-by-unread
"ov" 'gnus-group-sort-groups-by-score
;; Listing
"L!" 'gnus-group-list-ticked
"L/" 'gnus-group-list-limit-map
"L?" 'gnus-group-list-dormant
"La" 'gnus-group-list-active ;; was A A
"Lc" 'gnus-group-list-cached
"Lf" 'gnus-group-list-flush-map
"Lk" 'gnus-group-list-killed
"Ll" 'gnus-group-list-level
"Lm" 'gnus-group-list-matching
"LM" 'gnus-group-list-all-matching
"Lp" 'gnus-group-list-plus-map
"Ls" 'gnus-group-list-groups
"Lu" 'gnus-group-list-all-groups
"Lz" 'gnus-group-list-zombies
"^" 'gnus-group-enter-server-mode
(kbd "DEL") 'gnus-group-prev-unread-group
[mouse-2] 'gnus-mouse-pick-group
"g?" 'gnus-group-help-map)
(evil-set-initial-state 'gnus-server-mode 'normal)
(evil-define-key 'normal gnus-server-mode-map
(evil-collection-define-key 'normal 'gnus-server-mode-map
(kbd "RET") 'gnus-server-read-server
(kbd "SPC") 'gnus-server-read-server-in-server-buffer
"C" 'gnus-server-close-server
@ -248,13 +335,40 @@
"ZQ" 'gnus-server-exit)
(evil-set-initial-state 'gnus-browse-mode 'normal)
(evil-define-key 'normal gnus-browse-mode-map
(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
"q" 'gnus-browse-exit
"ZZ" 'gnus-browse-exit
"ZQ" 'gnus-browse-exit))
"ZQ" 'gnus-browse-exit)
(evil-set-initial-state 'gnus-bookmark-bmenu-mode 'normal)
(evil-collection-define-key 'normal 'gnus-bookmark-bmenu-mode-map
;; quit
"q" 'quit-window
"ZZ" 'quit-window
"ZQ" 'quit-window
"g?" 'describe-mode
;; mark and execution
"m" 'gnus-bookmark-bmenu-mark
"u" 'gnus-bookmark-bmenu-unmark
(kbd "DEL") 'gnus-bookmark-bmenu-backup-unmark
"d" 'gnus-bookmark-bmenu-delete
"x" 'gnus-bookmark-bmenu-execute-deletions
(kbd "RET") 'gnus-bookmark-bmenu-select
[mouse-2] 'gnus-bookmark-bmenu-select-by-mouse
"L" 'gnus-bookmark-bmenu-load
"s" 'gnus-bookmark-bmenu-save
"t" 'gnus-bookmark-bmenu-toggle-infos
"a" 'gnus-bookmark-bmenu-show-details
;; not implemented yet
"A" 'gnus-bookmark-bmenu-show-all-annotations
"E" 'gnus-bookmark-bmenu-edit-annotation
"R" 'gnus-bookmark-bmenu-rename))
(provide 'evil-collection-gnus)
;;; evil-collection-gnus.el ends here