The Complete Computer

Gnus Evil Mode

LifeTechEmacsArcology

I provide custom Evil Mode bindings here to control Gnus in the summary and group buffer, they're pretty straightforward, and I think this presentation is fairly legible. Evil Mode 's motion state is very useful for light modes like this

emacs-lisp source: 
(provide 'cce/gnus-evil-mode) (defun cce/setup-gnus-evil-bindings () (require 'gnus-topic) (setq evil-collection-mode-list (remove 'gnus evil-collection-mode-list)) (mapc (lambda (defn) (evil-define-key* 'motion gnus-topic-mode-map (kbd (car defn)) (cdr defn))) '(("RET" . gnus-topic-select-group) ("J" . gnus-group-next-unread-group) ("K" . gnus-group-prev-unread-group) ("gf" . gnus-topic-get-new-news-this-topic) ("f" . gnus-group-get-new-news) ("t" . gnus-topic-mode) ("s" . gnus-group-save-newsrc) ("q" . gnus-group-quit))) (mapc (lambda (defn) (evil-define-key* 'motion gnus-group-mode-map (kbd (car defn)) (cdr defn))) '(("RET" . gnus-group-select-group) ("J" . gnus-group-next-unread-group) ("K" . gnus-group-prev-unread-group) ("gf" . gnus-group-get-new-news-this-group) ("f" . gnus-group-get-new-news) ("t" . gnus-topic-mode) ("s" . gnus-group-save-newsrc) ("q" . gnus-group-quit))) (mapc (lambda (defn) (evil-define-key* 'motion gnus-summary-mode-map (kbd (car defn)) (cdr defn))) '(("RET" . gnus-summary-scroll-up) ("j" . gnus-summary-next-unread-article) ("k" . gnus-summary-prev-unread-article) ("J" . gnus-summary-next-article) ("K" . gnus-summary-prev-article) ("u" . gnus-summary-clear-mark-forward) ("U" . gnus-summary-clear-mark-backward) ("i" . gnus-summary-kill-same-subject-and-select) ("o" . gnus-summary-tick-article-forward) ("m" . gnus-summary-catchup-from-here) ("M" . gnus-summary-catchup-to-here) ("L" . gnus-summary-lower-score) ("I" . gnus-summary-increase-score) ("p" . gnus-summary-catchup-and-exit) ("d" . gnus-summary-mark-as-read-forward) ("n" . gnus-summary-next-page) ("q" . gnus-summary-exit) ("/" . gnus-summary-limit-map)))) (eval-after-load "gnus" #'cce/setup-gnus-evil-bindings) (evil-set-initial-state 'gnus-summary-mode 'motion) (evil-set-initial-state 'gnus-group-mode 'motion)