3.6 KiB
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. |