Evil: Use evil-collection and move personal bindings there
parent
6fae49e93d
commit
5eb0b35a3b
|
@ -56,7 +56,8 @@ if command -v emacs >/dev/null 2>&1; then
|
|||
yes | emacs --batch -l ~/.emacs.d/init.el --eval '(progn (package-refresh-contents) (package-install-selected-packages))'
|
||||
echo "==> Emacs extra packages"
|
||||
mkdir -pv ~/.emacs.d/site-lisp
|
||||
git_update https://github.com/Ambrevar/evil-special-modes ~/.emacs.d/site-lisp/evil-special-modes
|
||||
git_update https://github.com/jojojames/evil-collection ~/.emacs.d/site-lisp/evil-collection
|
||||
# git_update https://github.com/Ambrevar/evil-special-modes ~/.emacs.d/site-lisp/evil-special-modes
|
||||
# git_update https://github.com/Ambrevar/emacs-fish-completion ~/.emacs.d/site-lisp/fish-completion
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
;;; Evil+Debbugs
|
||||
|
||||
(evil-set-initial-state 'debbugs-gnu-mode 'motion)
|
||||
|
||||
(evil-define-key 'motion debbugs-gnu-mode-map
|
||||
;; motion
|
||||
(kbd "<tab>") 'forward-button
|
||||
(kbd "<backtab>") 'backward-button
|
||||
(kbd "SPC") 'scroll-up-command
|
||||
|
||||
(kbd "<return>") 'debbugs-gnu-select-report
|
||||
"c" 'debbugs-gnu-send-control-message
|
||||
"d" 'debbugs-gnu-display-status
|
||||
|
||||
;; filtering
|
||||
(kbd "s") 'debbugs-gnu-narrow-to-status
|
||||
;; "S" 'debbugs-gnu-widen ; Useless if we can just press "s RET" (empty filter).
|
||||
"S" 'debbugs-gnu-toggle-suppress
|
||||
"r" 'debbugs-gnu-show-all-blocking-reports
|
||||
|
||||
;; sorting
|
||||
"o" 'debbugs-gnu-toggle-sort
|
||||
"O" 'tabulated-list-sort
|
||||
|
||||
;; show
|
||||
"gB" 'debbugs-gnu-show-blocking-reports
|
||||
"gb" 'debbugs-gnu-show-blocked-by-reports
|
||||
|
||||
;; marking
|
||||
"m" 'debbugs-gnu-toggle-tag
|
||||
|
||||
;; update
|
||||
"gr" 'debbugs-gnu-rescan
|
||||
|
||||
;; quit
|
||||
"q" 'quit-window
|
||||
"ZQ" 'quit-window
|
||||
"ZZ" 'quit-window)
|
||||
|
||||
(provide 'init-evil-debbugs)
|
|
@ -1,65 +0,0 @@
|
|||
;;; Evil+Elfeed
|
||||
|
||||
(evil-set-initial-state 'elfeed-search-mode 'motion)
|
||||
(evil-define-key 'motion elfeed-search-mode-map
|
||||
(kbd "<return>") 'elfeed-search-show-entry
|
||||
"o" 'elfeed-search-browse-url
|
||||
"y" 'elfeed-search-yank
|
||||
|
||||
;; filter
|
||||
"s" 'elfeed-search-live-filter
|
||||
"S" 'elfeed-search-set-filter
|
||||
|
||||
;; update
|
||||
"R" 'elfeed-search-fetch ; TODO: Which update function is more useful?
|
||||
"r" 'elfeed-search-update--force
|
||||
|
||||
;; quit
|
||||
"q" 'quit-window
|
||||
"ZQ" 'quit-window
|
||||
"ZZ" 'quit-window)
|
||||
|
||||
(evil-define-key '(motion visual) elfeed-search-mode-map
|
||||
"+" 'elfeed-search-tag-all
|
||||
"-" 'elfeed-search-untag-all
|
||||
"U" 'elfeed-search-tag-all-unread
|
||||
"u" 'elfeed-search-untag-all-unread)
|
||||
|
||||
(evil-set-initial-state 'elfeed-show-mode 'motion)
|
||||
(evil-define-key 'motion elfeed-show-mode-map
|
||||
"o" 'elfeed-show-visit
|
||||
|
||||
;; filter
|
||||
"s" 'elfeed-show-new-live-search
|
||||
|
||||
"y" 'elfeed-show-yank
|
||||
|
||||
"+" 'elfeed-show-tag
|
||||
"-" 'elfeed-show-untag
|
||||
|
||||
"A" 'elfeed-show-add-enclosure-to-playlist
|
||||
"P" 'elfeed-show-play-enclosure
|
||||
"d" 'elfeed-show-save-enclosure
|
||||
|
||||
"]" 'elfeed-show-next
|
||||
"[" 'elfeed-show-prev
|
||||
(kbd "C-j") 'elfeed-show-next
|
||||
(kbd "C-k") 'elfeed-show-prev
|
||||
|
||||
;; update
|
||||
"r" 'elfeed-show-refresh
|
||||
|
||||
;; quit
|
||||
"q" 'elfeed-kill-buffer
|
||||
"ZQ" 'elfeed-kill-buffer
|
||||
"ZZ" 'elfeed-kill-buffer)
|
||||
|
||||
;;; Custom
|
||||
(evil-define-key 'motion elfeed-search-mode-map
|
||||
(kbd "<return>") 'elfeed-visit-or-play-with-mpv
|
||||
"o" 'elfeed-visit-or-play-with-mpv)
|
||||
(evil-define-key 'motion elfeed-show-mode-map
|
||||
(kbd "<return>") 'elfeed-visit-or-play-with-mpv
|
||||
"o" 'elfeed-visit-or-play-with-mpv)
|
||||
|
||||
(provide 'init-evil-elfeed)
|
|
@ -1,143 +0,0 @@
|
|||
;;; Evil+EMMS
|
||||
|
||||
;;; TODO: Make all play bindings consistent across modes "stop, pause, volume, next/previous, fast-forward/backward".
|
||||
|
||||
;;; TODO: Add bindings to search map.
|
||||
|
||||
;;; emms-browser does not run any mode hook. As such the default state is 'normal.
|
||||
;;; TODO: Report upstream.
|
||||
(defun evil/emms-browser ()
|
||||
(evil-motion-state))
|
||||
(advice-add 'emms-browser :after 'evil/emms-browser)
|
||||
|
||||
(defun evil/emms-playlist-mode-insert-newline-above ()
|
||||
"Insert a newline above point."
|
||||
(interactive)
|
||||
(emms-with-inhibit-read-only-t
|
||||
(evil-insert-newline-above)))
|
||||
|
||||
(defun evil/emms-playlist-mode-insert-newline-below ()
|
||||
"Insert a newline below point."
|
||||
(interactive)
|
||||
(emms-with-inhibit-read-only-t
|
||||
(evil-insert-newline-below)))
|
||||
|
||||
(defun evil/emms-playlist-mode-paste-before ()
|
||||
"Pastes the latest yanked playlist items before the cursor position.
|
||||
The return value is the yanked text."
|
||||
(interactive)
|
||||
(emms-with-inhibit-read-only-t
|
||||
(goto-char (point-at-bol))
|
||||
(yank)
|
||||
(emms-playlist-mode-correct-previous-yank)
|
||||
(evil-previous-line)
|
||||
(evil-beginning-of-line)))
|
||||
|
||||
(defun evil/emms-playlist-mode-paste-after ()
|
||||
"Pastes the latest yanked playlist items behind point.
|
||||
The return value is the yanked text."
|
||||
(interactive)
|
||||
(evil-next-line)
|
||||
(evil/emms-playlist-mode-paste-before))
|
||||
|
||||
(dolist (map (list emms-browser-mode-map emms-playlist-mode-map))
|
||||
(evil-define-key 'motion map
|
||||
"+" 'emms-volume-raise
|
||||
"=" 'emms-volume-raise
|
||||
"-" 'emms-volume-lower
|
||||
"u" 'emms-playlist-mode-undo))
|
||||
|
||||
(with-eval-after-load 'emms-browser
|
||||
;; TODO: Why do we need to define emms-browser-mode-map after load and not emms-playlist-mode-map?
|
||||
(evil-define-key 'motion emms-browser-mode-map
|
||||
;; playback controls
|
||||
"x" 'emms-pause
|
||||
"X" 'emms-stop
|
||||
"r" 'emms-random
|
||||
"<" 'emms-seek-backward
|
||||
">" 'emms-seek-forward
|
||||
(kbd "<return>") 'emms-browser-add-tracks
|
||||
(kbd "C-<return>") 'emms-browser-add-tracks-and-play
|
||||
|
||||
;; motion
|
||||
"[" 'emms-browser-prev-non-track
|
||||
"]" 'emms-browser-next-non-track
|
||||
|
||||
(kbd "<tab>") 'emms-browser-toggle-subitems
|
||||
(kbd "SPC") 'emms-browser-toggle-subitems
|
||||
;; TODO: Use S-<tab>?
|
||||
"g1" 'emms-browser-collapse-all
|
||||
"g2" 'emms-browser-expand-to-level-2
|
||||
"g3" 'emms-browser-expand-to-level-3
|
||||
"g4" 'emms-browser-expand-to-level-4
|
||||
"g0" 'emms-browser-expand-all
|
||||
"ga" 'emms-browse-by-artist
|
||||
"gA" 'emms-browse-by-album
|
||||
"gb" 'emms-browse-by-genre
|
||||
"gy" 'emms-browse-by-year
|
||||
"gc" 'emms-browse-by-composer
|
||||
"gp" 'emms-browse-by-performer
|
||||
|
||||
"/" 'emms-isearch-buffer ; This shows hidden items during search.
|
||||
|
||||
;; filter
|
||||
;; "" 'emms-browser-previous-filter ; TODO: What does this do?
|
||||
;; "" 'emms-browser-next-filter
|
||||
|
||||
"s" (lookup-key emms-browser-mode-map (kbd "s"))
|
||||
"g" (lookup-key emms-browser-mode-map (kbd "W")) ;; TODO: This breaks other evil keys.
|
||||
|
||||
"C" 'emms-browser-clear-playlist
|
||||
"D" 'emms-browser-delete-files
|
||||
"d" 'emms-browser-view-in-dired
|
||||
"gd" 'emms-playlist-mode-goto-dired-at-point)) ; "d" does the same, keep "gd" for consistency.
|
||||
|
||||
(evil-set-initial-state 'emms-playlist-mode 'motion)
|
||||
(evil-define-key 'motion emms-playlist-mode-map
|
||||
;; playback controls
|
||||
"x" 'emms-pause
|
||||
"X" 'emms-stop
|
||||
"r" 'emms-random
|
||||
"<" 'emms-seek-backward
|
||||
">" 'emms-seek-forward
|
||||
(kbd "C-j") 'emms-next
|
||||
(kbd "C-k") 'emms-previous
|
||||
(kbd "<return>") 'emms-playlist-mode-play-smart
|
||||
|
||||
;; motion
|
||||
"gg" 'emms-playlist-mode-first
|
||||
"G" 'emms-playlist-mode-last
|
||||
"]" 'emms-playlist-mode-next
|
||||
"[" 'emms-playlist-mode-previous
|
||||
|
||||
"D" 'emms-playlist-mode-kill-track ; emms-browser uses "D"
|
||||
"C" 'emms-playlist-mode-clear
|
||||
"O" 'evil/emms-playlist-mode-insert-newline-above
|
||||
"o" 'evil/emms-playlist-mode-insert-newline-below
|
||||
"P" 'evil/emms-playlist-mode-paste-before
|
||||
"p" 'evil/emms-playlist-mode-paste-after
|
||||
|
||||
"u" 'emms-playlist-mode-undo
|
||||
|
||||
"ze" 'emms-tag-editor-edit
|
||||
"R" 'emms-tag-editor-rename
|
||||
|
||||
"." 'emms-playlist-mode-center-current
|
||||
"gd" 'emms-playlist-mode-goto-dired-at-point ; "d" does the same, keep "gd" for consistency.
|
||||
|
||||
"zs" 'emms-show
|
||||
"a" 'emms-playlist-mode-add-contents
|
||||
"zp" 'emms-playlist-set-playlist-buffer
|
||||
|
||||
;; filter
|
||||
"S" (lookup-key emms-playlist-mode-map (kbd "S"))
|
||||
"s" (lookup-key emms-playlist-mode-map (kbd "/"))
|
||||
;; "" 'emms-playlist-limit-to-all ; TODO: Test.
|
||||
|
||||
(kbd "M-y") 'emms-playlist-mode-yank-pop)
|
||||
|
||||
(evil-define-key 'visual emms-playlist-mode-map
|
||||
;; "d" 'emms-playlist-mode-kill
|
||||
"D" 'emms-playlist-mode-kill)
|
||||
|
||||
(provide 'init-evil-emms)
|
|
@ -1,14 +0,0 @@
|
|||
;;; Evil+Image+
|
||||
|
||||
(when (require 'image+ nil t)
|
||||
(evil-define-key 'motion image-mode-map
|
||||
"+" 'imagex-sticky-zoom-in
|
||||
"-" 'imagex-sticky-zoom-out
|
||||
"M" 'imagex-sticky-maximize
|
||||
"m" 'imagex-auto-adjust-mode
|
||||
"O" 'imagex-sticky-restore-original
|
||||
"S" 'imagex-sticky-save-image
|
||||
"r" 'imagex-sticky-rotate-right
|
||||
"l" 'imagex-sticky-rotate-left))
|
||||
|
||||
(provide 'init-evil-image+)
|
|
@ -1,5 +1,7 @@
|
|||
;;; Evil leader
|
||||
|
||||
;;; TODO: Remove evil leader config?
|
||||
|
||||
;;; Leader mode and its key must be set before evil-mode.
|
||||
(evil-leader/set-leader "SPC")
|
||||
(global-evil-leader-mode)
|
||||
|
|
|
@ -1,182 +0,0 @@
|
|||
;;; Evil+pdftools
|
||||
|
||||
(defun evil-pdf-view-goto-page (&optional page)
|
||||
(interactive "P")
|
||||
(if page
|
||||
(pdf-view-goto-page page)
|
||||
(pdf-view-last-page)))
|
||||
|
||||
(defun evil-pdf-view-goto-first-page (&optional page)
|
||||
(interactive "P")
|
||||
(if page
|
||||
(pdf-view-goto-page page)
|
||||
(pdf-view-first-page)))
|
||||
|
||||
(evil-set-initial-state 'pdf-view-mode 'motion)
|
||||
(evil-define-key 'motion pdf-view-mode-map
|
||||
;; motion
|
||||
(kbd "<return>") 'image-next-line
|
||||
"j" 'pdf-view-next-line-or-next-page
|
||||
"k" 'pdf-view-previous-line-or-previous-page
|
||||
(kbd "SPC") 'pdf-view-scroll-up-or-next-page
|
||||
(kbd "S-SPC") 'pdf-view-scroll-down-or-previous-page
|
||||
(kbd "<delete>") 'pdf-view-scroll-down-or-previous-page
|
||||
(kbd "C-f") 'pdf-view-scroll-up-or-next-page
|
||||
(kbd "C-b") 'pdf-view-scroll-down-or-previous-page
|
||||
"]" 'pdf-view-next-page-command
|
||||
"[" 'pdf-view-previous-page-command
|
||||
(kbd "C-j") 'pdf-view-next-page-command
|
||||
(kbd "C-k") 'pdf-view-previous-page-command
|
||||
(kbd "<next>") 'forward-page
|
||||
(kbd "<prior>") 'backward-page
|
||||
(kbd "<down>") 'pdf-view-next-line-or-next-page
|
||||
(kbd "<up>") 'pdf-view-previous-line-or-previous-page
|
||||
"gg" 'evil-pdf-view-goto-first-page
|
||||
"G" 'evil-pdf-view-goto-page
|
||||
|
||||
;; mark
|
||||
"'" 'pdf-view-jump-to-register
|
||||
"m" 'pdf-view-position-to-register
|
||||
|
||||
"+" 'pdf-view-enlarge
|
||||
"-" 'pdf-view-shrink
|
||||
"0" 'pdf-view-scale-reset
|
||||
"=" 'pdf-view-enlarge
|
||||
|
||||
;; TODO: Why is this here?
|
||||
"a+" 'image-increase-speed
|
||||
"a-" 'image-decrease-speed
|
||||
"a0" 'image-reset-speed
|
||||
"ar" 'image-reverse-speed
|
||||
"F" 'image-goto-frame
|
||||
"b" 'image-previous-frame
|
||||
"f" 'image-next-frame
|
||||
"h" 'image-backward-hscroll
|
||||
"^" 'image-bol
|
||||
"$" 'image-eol
|
||||
"l" 'image-forward-hscroll
|
||||
|
||||
"H" 'pdf-view-fit-height-to-window ; evil-image has "H"
|
||||
"P" 'pdf-view-fit-page-to-window
|
||||
"W" 'pdf-view-fit-width-to-window ; evil-image has "W"
|
||||
|
||||
;; update
|
||||
"gr" 'revert-buffer
|
||||
|
||||
(kbd "<C-down-mouse-1>") 'pdf-view-mouse-extend-region
|
||||
(kbd "<M-down-mouse-1>") 'pdf-view-mouse-set-region-rectangle
|
||||
(kbd "<down-mouse-1>") 'pdf-view-mouse-set-region
|
||||
|
||||
(kbd "C-c C-c") 'docview-mode
|
||||
(kbd "C-c <tab>") 'pdf-view-extract-region-image
|
||||
|
||||
"sb" 'pdf-view-set-slice-from-bounding-box
|
||||
"sm" 'pdf-view-set-slice-using-mouse
|
||||
"sr" 'pdf-view-reset-slice
|
||||
|
||||
;; goto
|
||||
"gl" 'pdf-view-goto-label
|
||||
|
||||
"y" 'pdf-view-kill-ring-save
|
||||
|
||||
;; search
|
||||
(kbd "M-s o") 'pdf-occur ; TODO: bad binding
|
||||
|
||||
"zd" 'pdf-view-dark-minor-mode
|
||||
"zm" 'pdf-view-midnight-minor-mode
|
||||
"zp" 'pdf-view-printer-minor-mode
|
||||
|
||||
;; quit
|
||||
"q" 'quit-window
|
||||
"Q" 'kill-this-buffer
|
||||
"ZQ" 'kill-this-buffer
|
||||
"ZZ" 'quit-window)
|
||||
|
||||
(evil-set-initial-state 'pdf-outline-buffer-mode 'motion)
|
||||
(evil-define-key 'motion pdf-outline-buffer-mode-map
|
||||
(kbd "<return>") 'pdf-outline-follow-link
|
||||
(kbd "M-<return>") 'pdf-outline-follow-link-and-quit
|
||||
(kbd "SPC") 'pdf-outline-display-link
|
||||
"." 'pdf-outline-move-to-current-page
|
||||
"o" 'pdf-outline-select-pdf-window
|
||||
|
||||
"G" 'pdf-outline-end-of-buffer
|
||||
"^" 'pdf-outline-up-heading
|
||||
"<" 'pdf-outline-up-heading ; TODO: Don't set this by default?
|
||||
|
||||
"zf" 'pdf-outline-follow-mode ; helm has "C-c C-f".
|
||||
|
||||
;; quit
|
||||
(kbd "C-w q") 'pdf-outline-quit-and-kill ; TODO: Do we need to set this? I think no.
|
||||
"q" 'quit-window
|
||||
"ZQ" 'quit-window
|
||||
"ZZ" 'pdf-outline-quit-and-kill)
|
||||
|
||||
(evil-define-key 'motion pdf-occur-buffer-mode-map
|
||||
(kbd "<return>") 'pdf-occur-goto-occurrence
|
||||
(kbd "o") 'pdf-occur-view-occurrence
|
||||
(kbd "C-o") 'pdf-occur-view-occurrence ; TODO: "o" is a better binding.
|
||||
(kbd "SPC") 'pdf-occur-view-occurrence
|
||||
|
||||
"A" 'pdf-occur-tablist-gather-documents
|
||||
"D" 'pdf-occur-tablist-do-delete
|
||||
|
||||
;; sort
|
||||
"S" 'tabulated-list-sort
|
||||
|
||||
;; update
|
||||
"G" 'tablist-revert
|
||||
|
||||
"K" 'pdf-occur-abort-search
|
||||
|
||||
;; mark
|
||||
"*m" 'tablist-mark-forward
|
||||
"m" 'tablist-mark-forward
|
||||
"~" 'tablist-toggle-marks
|
||||
"u" 'tablist-unmark-forward
|
||||
"M" 'tablist-unmark-all-marks
|
||||
"*!" 'tablist-unmark-all-marks
|
||||
"*c" 'tablist-change-marks
|
||||
"*n" 'tablist-mark-items-numeric
|
||||
"*r" 'tablist-mark-items-regexp
|
||||
"%" 'tablist-mark-items-regexp
|
||||
|
||||
"a" 'tablist-flag-forward
|
||||
|
||||
;; "f" 'tablist-find-entry ; TODO: Equivalent to 'pdf-occur-goto-occurrence?
|
||||
"r" 'pdf-occur-revert-buffer-with-args
|
||||
"d" 'tablist-do-kill-lines
|
||||
"s" 'tablist-sort
|
||||
"x" 'pdf-occur-tablist-do-flagged-delete
|
||||
(kbd "<delete>") 'tablist-unmark-backward
|
||||
(kbd "S-SPC") 'scroll-down-command
|
||||
(kbd "<backtab>") 'tablist-backward-column
|
||||
(kbd "C-c C-e") 'tablist-export-csv
|
||||
|
||||
[remap evil-first-non-blank] 'tablist-move-to-major-columnj
|
||||
[remap evil-next-line] 'tablist-next-line
|
||||
[remap evil-previous-line] 'tablist-previous-line
|
||||
|
||||
;; filter
|
||||
;; TODO: See if overriding "/" is a good idea.
|
||||
"/!" 'tablist-negate-filter
|
||||
"//" 'tablist-display-filter
|
||||
"/=" 'tablist-push-equal-filter
|
||||
"/C" 'tablist-clear-filter
|
||||
"/D" 'tablist-delete-named-filter
|
||||
"/a" 'tablist-push-named-filter
|
||||
"/d" 'tablist-deconstruct-named-filter
|
||||
"/e" 'tablist-edit-filter
|
||||
"/n" 'tablist-push-numeric-filter
|
||||
"/p" 'tablist-pop-filter
|
||||
"/r" 'tablist-push-regexp-filter
|
||||
"/s" 'tablist-name-current-filter
|
||||
"/t" 'tablist-toggle-first-filter-logic
|
||||
"/z" 'tablist-suspend-filter
|
||||
|
||||
;; quit
|
||||
"q" 'tablist-quit
|
||||
"ZQ" 'tablist-quit
|
||||
"ZZ" 'tablist-quit)
|
||||
|
||||
(provide 'init-evil-pdf)
|
|
@ -1,105 +0,0 @@
|
|||
;;; Evil+Transmission
|
||||
|
||||
(evil-set-initial-state 'transmission-mode 'motion)
|
||||
(evil-define-key 'motion transmission-mode-map
|
||||
;; motion
|
||||
(kbd "SPC") 'scroll-up-command
|
||||
(kbd "S-SPC") 'scroll-down-command
|
||||
(kbd "<delete>") 'scroll-down-command
|
||||
|
||||
;; sort
|
||||
"s" 'tabulated-list-sort
|
||||
|
||||
(kbd "<return>") 'transmission-files
|
||||
"p" 'transmission-peers
|
||||
"i" 'transmission-info
|
||||
|
||||
"a" 'transmission-add
|
||||
;; "D" 'transmission-delete ; Useless with `transmission-remove'?
|
||||
"p" 'transmission-move
|
||||
"d" 'transmission-remove
|
||||
"x" 'transmission-toggle ; EMMS has "x" for pause.
|
||||
"t" 'transmission-trackers-add
|
||||
"c" 'transmission-verify ; "c" for "[c]heck".
|
||||
"D" 'transmission-set-download
|
||||
"U" 'transmission-set-upload
|
||||
"S" 'transmission-set-ratio ; "S" for "[S]eed"
|
||||
"P" 'transmission-set-bandwidth-priority
|
||||
|
||||
;; mark
|
||||
"m" 'transmission-toggle-mark
|
||||
"M" 'transmission-unmark-all
|
||||
"~" 'transmission-invert-marks
|
||||
|
||||
;; update
|
||||
"gr" 'revert-buffer
|
||||
|
||||
;; quit
|
||||
"q" 'transmission-quit
|
||||
"ZQ" 'evil-quit
|
||||
"ZZ" 'transmission-quit)
|
||||
|
||||
(evil-set-initial-state 'transmission-files-mode 'motion)
|
||||
(evil-define-key 'motion transmission-files-mode-map
|
||||
(kbd "SPC") 'scroll-up-command
|
||||
(kbd "S-SPC") 'scroll-down-command
|
||||
(kbd "<delete>") 'scroll-down-command
|
||||
|
||||
;; sort
|
||||
"s" 'tabulated-list-sort
|
||||
|
||||
"p" 'transmission-peers
|
||||
"i" 'transmission-info
|
||||
|
||||
"R" 'transmission-move
|
||||
"u" 'transmission-files-unwant
|
||||
"U" 'transmission-files-want
|
||||
"P" 'transmission-files-priority
|
||||
(kbd "<return>") 'transmission-find-file
|
||||
(kbd "S-<return>") 'transmission-display-file
|
||||
"o" 'transmission-find-file-other-window
|
||||
"O" 'transmission-view-file
|
||||
"!" 'transmission-files-command
|
||||
;; "X" 'transmission-files-command
|
||||
"t" 'transmission-trackers-add
|
||||
"T" 'transmission-trackers-remove
|
||||
|
||||
;; goto URL
|
||||
"gx" 'transmission-browse-url-of-file ; See mu4e.
|
||||
|
||||
;; quit
|
||||
"q" 'transmission-quit
|
||||
"ZQ" 'evil-quit
|
||||
"ZZ" 'transmission-quit)
|
||||
|
||||
(evil-set-initial-state 'transmission-info-mode 'motion)
|
||||
(evil-define-key 'motion transmission-info-mode-map
|
||||
"p" 'transmission-peers
|
||||
|
||||
"t" 'transmission-trackers-add
|
||||
"T" 'transmission-trackers-remove
|
||||
"D" 'transmission-set-torrent-download
|
||||
"U" 'transmission-set-torrent-upload
|
||||
"S" 'transmission-set-torrent-ratio ; "S" for "[S]eed"
|
||||
"P" 'transmission-set-bandwidth-priority
|
||||
"gy" 'transmission-copy-magnet ; TODO: Use "ym"?
|
||||
"R" 'transmission-move
|
||||
|
||||
;; quit
|
||||
"q" 'quit-window
|
||||
"ZQ" 'evil-quit
|
||||
"ZZ" 'quit-window)
|
||||
|
||||
(evil-set-initial-state 'transmission-peers-mode 'motion)
|
||||
(evil-define-key 'motion transmission-peers-mode-map
|
||||
;; sort
|
||||
"s" 'tabulated-list-sort
|
||||
|
||||
"i" 'transmission-info
|
||||
|
||||
;; quit
|
||||
"q" 'quit-window
|
||||
"ZQ" 'evil-quit
|
||||
"ZZ" 'quit-window)
|
||||
|
||||
(provide 'init-evil-transmission)
|
|
@ -1,32 +0,0 @@
|
|||
;;; Evil+Ztree
|
||||
|
||||
(evil-set-initial-state 'ztree-mode 'motion)
|
||||
|
||||
(evil-define-key 'motion ztree-mode-map
|
||||
(kbd "<tab>") 'ztree-jump-side
|
||||
(kbd "<return>") 'ztree-perform-action
|
||||
(kbd "SPC") 'ztree-perform-soft-action
|
||||
|
||||
"x" 'ztree-toggle-expand-subtree
|
||||
|
||||
;; update
|
||||
"gr" 'ztree-refresh-buffer
|
||||
|
||||
;; quit
|
||||
"q" 'quit-window
|
||||
"ZQ" 'quit-window
|
||||
"ZZ" 'quit-window)
|
||||
|
||||
(evil-define-minor-mode-key 'motion 'ztreediff-mode
|
||||
"C" 'ztree-diff-copy
|
||||
"D" 'ztree-diff-delete-file
|
||||
"zH" 'ztree-diff-toggle-show-filtered-files
|
||||
"d" 'ztree-diff-simple-diff-files
|
||||
"zh" 'ztree-diff-toggle-show-equal-files
|
||||
"gf" 'ztree-diff-view-file
|
||||
|
||||
;; update
|
||||
"gr" 'ztree-diff-partial-rescan
|
||||
"gR" 'ztree-diff-full-rescan)
|
||||
|
||||
(provide 'init-evil-ztree)
|
|
@ -106,12 +106,40 @@
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; Mode specific bindings.
|
||||
|
||||
;;; Emacs special modes
|
||||
(when (require 'evil-special-modes nil t)
|
||||
(evil-special-modes-init)
|
||||
(when (require 'evil-collection nil t)
|
||||
(evil-collection-init)
|
||||
(require 'evil-minibuffer)
|
||||
(evil-minibuffer-init))
|
||||
|
||||
(with-eval-after-load 'elfeed
|
||||
;; Custom
|
||||
(evil-define-key 'motion elfeed-search-mode-map
|
||||
(kbd "<return>") 'elfeed-visit-or-play-with-mpv
|
||||
"o" 'elfeed-visit-or-play-with-mpv)
|
||||
(evil-define-key 'motion elfeed-show-mode-map
|
||||
(kbd "<return>") 'elfeed-visit-or-play-with-mpv
|
||||
"o" 'elfeed-visit-or-play-with-mpv))
|
||||
|
||||
(with-eval-after-load 'init-helm (require 'init-evil-helm))
|
||||
|
||||
;; TODO: Delete this.
|
||||
;; (with-eval-after-load 'debbugs (require 'init-evil-debbugs nil t))
|
||||
;; (with-eval-after-load 'emms (require 'init-evil-emms))
|
||||
;; TODO: `image-mode-map' is the parent of `pdf-view-mode-map'. A bug(?) in
|
||||
;; image-mode-map and pdf-mode-map seem to conflict with Evil.
|
||||
;; See https://github.com/emacs-evil/evil/issues/938
|
||||
;; and https://github.com/politza/pdf-tools/issues/324.
|
||||
;; Changing load order only changes which mode overrides the other.
|
||||
;; (with-eval-after-load 'pdf-view (require 'init-evil-pdf))
|
||||
;; (with-eval-after-load 'image+ (require 'init-evil-image+))
|
||||
;; (with-eval-after-load 'transmission (require 'init-evil-transmission))
|
||||
;; (with-eval-after-load 'ztree-diff (require 'init-evil-ztree))
|
||||
;;; Emacs special modes
|
||||
;; (when (require 'evil-special-modes nil t)
|
||||
;; (evil-special-modes-init)
|
||||
;; (require 'evil-minibuffer)
|
||||
;; (evil-minibuffer-init))
|
||||
|
||||
;;; nXML
|
||||
;;; TODO: Add to Emacs special modes?
|
||||
(evil-define-key 'normal nxml-mode-map
|
||||
|
@ -129,14 +157,6 @@
|
|||
">" 'nxml-down-element
|
||||
"<" 'nxml-backward-up-element)
|
||||
|
||||
(with-eval-after-load 'transmission (require 'init-evil-transmission))
|
||||
|
||||
(with-eval-after-load 'elfeed (require 'init-evil-elfeed))
|
||||
|
||||
(with-eval-after-load 'emms (require 'init-evil-emms))
|
||||
|
||||
(with-eval-after-load 'image+ (require 'init-evil-image+))
|
||||
|
||||
(with-eval-after-load 'mu4e
|
||||
(when (require 'evil-mu4e nil t)
|
||||
;; TODO: evil-mu4e needs a big overhaul, e.g. 'visual commands are not supported. Report upstream.
|
||||
|
@ -165,8 +185,6 @@
|
|||
"gx" 'mu4e-view-go-to-url)
|
||||
(evil-set-initial-state 'mu4e-compose-mode 'insert)))
|
||||
|
||||
(with-eval-after-load 'init-helm (require 'init-evil-helm))
|
||||
|
||||
(with-eval-after-load 'magit
|
||||
(when (require 'evil-magit nil t)
|
||||
(evil-magit-define-key evil-magit-state 'magit-mode-map "<" 'magit-section-up)
|
||||
|
@ -181,15 +199,6 @@
|
|||
;; (add-hook 'org-mode-hook 'evil-org-mode)
|
||||
;; (evil-org-set-key-theme '(textobjects insert navigation additional shift todo heading)))
|
||||
|
||||
;; TODO: `image-mode-map' is the parent of `pdf-view-mode-map'. A bug(?) in
|
||||
;; image-mode-map and pdf-mode-map seem to conflict with Evil.
|
||||
;; See https://github.com/emacs-evil/evil/issues/938
|
||||
;; and https://github.com/politza/pdf-tools/issues/324.
|
||||
;; Changing load order only changes which mode overrides the other.
|
||||
(with-eval-after-load 'pdf-view (require 'init-evil-pdf))
|
||||
|
||||
(with-eval-after-load 'ztree-diff (require 'init-evil-ztree))
|
||||
(with-eval-after-load 'gnus (require 'init-evil-gnus))
|
||||
(with-eval-after-load 'debbugs (require 'init-evil-debbugs nil t))
|
||||
|
||||
(provide 'init-evil)
|
||||
|
|
Loading…
Reference in New Issue