* diff-mode Evil bindings for =diff-mode=. By default they are installed on a dedicated minor mode (=evil-collection-diff-mode=) attached to every =diff-mode= buffer, so normal/insert states keep working for editing. Set =evil-collection-diff-mode-want-minor-mode= to =nil= to instead bind on =diff-mode-map= and have read-only / motion state toggle together. ** Key bindings (minor-mode setup, default) Active in normal state. | Command | Original | Evil | |--------------------+-----------+-------------| | =diff-goto-source= | =C-c C-c= | =RET= | | =diff-file-prev= | =M-{= | =[[= | | =diff-file-next= | =M-}= | =]]= | | =diff-hunk-prev= | =M-p= | =gk=, =C-k= | | =diff-hunk-next= | =M-n= | =gj=, =C-j= | | =diff-ediff-patch= | =C-c C-e= | =ge= | | =read-only-mode= | n/a | =\= | | =quit-window= | n/a | =q= | With =evil-collection-want-g-bindings= (the default), edit commands sit under =g=: | Command | Original | Evil | |-----------------------------------------------+-----------+------| | =diff-apply-hunk= | =C-c C-a= | =ga= | | =diff-refine-hunk= | =C-c C-b= | =g*= | | =diff-hunk-kill= | =C-c C-k= | =gx= | | =diff-file-kill= | =C-c M-k= | =gX= | | =diff-split-hunk= | =C-c C-s= | =gs= | | =diff-test-hunk= | =C-c C-t= | =gc= | | =diff-reverse-direction= | =C-c C-r= | =g~= | | =diff-ignore-whitespace-hunk= | =C-c C-w= | =g#= | | =diff-add-change-log-entries-other-window= | =C-x 4 A= | =gA= | | =evil-collection-diff-toggle-context-unified= | n/a | =g%= | | =evil-collection-diff-toggle-restrict-view= | =C-c C-n= | =go= | | =next-error-follow-minor-mode= | =C-c C-f= | =gi= | Without =evil-collection-want-g-bindings=, the commands above land on their single-letter equivalents (=a=, =*=, =d=, =D=, =s=, =c=, =~=, =#=, =A=, =x=, =o=, =i=) instead. ** Motion-state setup (when =evil-collection-diff-mode-want-minor-mode= is nil) Same set of commands, but they go on =diff-mode-map= directly in normal and motion states. A hook (=evil-collection-diff-toggle-setup=) flips state whenever the buffer's read-only flag changes — read-only buffers enter motion state, writable buffers normal state. Toggle this hook per-buffer with =M-x evil-collection-diff-toggle-setup=. ** New commands | Command | Key | | |-----------------------------------------------+------+--------------------------------------------------| | =evil-collection-diff-toggle-context-unified= | =g%= | Toggle context <-> unified view. | | =evil-collection-diff-toggle-restrict-view= | =go= | Toggle =diff-restrict-view=; widens if narrowed. | | =evil-collection-diff-toggle-setup= | n/a | Toggle the read-only state hook in the buffer. | ** Customization | Variable | Default | Purpose | |---------------------------------------------+---------+----------------------------------------------------------------------------| | =evil-collection-diff-mode-want-minor-mode= | =t= | Bind on =evil-collection-diff-mode= minor mode instead of =diff-mode-map=. |