parent
928b1075ff
commit
8cb3843480
|
@ -37,6 +37,11 @@
|
||||||
"Evil port of unimpaired for `evil-collection'."
|
"Evil port of unimpaired for `evil-collection'."
|
||||||
:group 'evil-collection)
|
:group 'evil-collection)
|
||||||
|
|
||||||
|
(defcustom evil-collection-unimpaired-want-repeat-mode-integration nil
|
||||||
|
"Whether or not to enable `repeat-mode' integration."
|
||||||
|
:type 'boolean
|
||||||
|
:group 'evil-collection)
|
||||||
|
|
||||||
(defconst evil-collection-unimpaired-maps '(evil-collection-unimpaired-mode-map))
|
(defconst evil-collection-unimpaired-maps '(evil-collection-unimpaired-mode-map))
|
||||||
|
|
||||||
(defvar evil-collection-unimpaired-mode-map (make-sparse-keymap)
|
(defvar evil-collection-unimpaired-mode-map (make-sparse-keymap)
|
||||||
|
@ -224,6 +229,41 @@
|
||||||
(interactive "*p")
|
(interactive "*p")
|
||||||
(evil-collection-unimpaired--move-text (- arg)))
|
(evil-collection-unimpaired--move-text (- arg)))
|
||||||
|
|
||||||
|
;;; 'repeat-mode' integration. Emacs 28+
|
||||||
|
(defmacro evil-collection-unimpaired-defvar-keymap (name &rest bindings)
|
||||||
|
"Define NAME a keymap with BINDINGS."
|
||||||
|
(declare (indent 1))
|
||||||
|
(cl-assert (cl-evenp (length bindings)))
|
||||||
|
`(progn
|
||||||
|
(defvar ,name
|
||||||
|
(let ((map (make-sparse-keymap)))
|
||||||
|
map))
|
||||||
|
(evil-collection-define-key nil ',name ,@bindings)))
|
||||||
|
|
||||||
|
;; "[b" and "]b"
|
||||||
|
(evil-collection-unimpaired-defvar-keymap evil-prev-buffer-repeat-map
|
||||||
|
"b" #'evil-prev-buffer
|
||||||
|
"B" #'evil-next-buffer)
|
||||||
|
(evil-collection-unimpaired-defvar-keymap evil-next-buffer-repeat-map
|
||||||
|
"b" #'evil-next-buffer
|
||||||
|
"B" #'evil-prev-buffer)
|
||||||
|
|
||||||
|
;; "[e" and "]e"
|
||||||
|
(evil-collection-unimpaired-defvar-keymap evil-collection-unimpaired-move-text-up-repeat-map
|
||||||
|
"e" #'evil-collection-unimpaired-move-text-up
|
||||||
|
"E" #'evil-collection-unimpaired-move-text-down)
|
||||||
|
(evil-collection-unimpaired-defvar-keymap evil-collection-unimpaired-move-text-down-repeat-map
|
||||||
|
"e" #'evil-collection-unimpaired-move-text-down
|
||||||
|
"E" #'evil-collection-unimpaired-move-text-up)
|
||||||
|
|
||||||
|
;; "[q" and "]q"
|
||||||
|
(evil-collection-unimpaired-defvar-keymap evil-collection-unimpaired-previous-error-repeat-map
|
||||||
|
"q" #'evil-collection-unimpaired-previous-error
|
||||||
|
"Q" #'evil-collection-unimpaired-next-error)
|
||||||
|
(evil-collection-unimpaired-defvar-keymap evil-collection-unimpaired-next-error-repeat-map
|
||||||
|
"q" #'evil-collection-unimpaired-next-error
|
||||||
|
"Q" #'evil-collection-unimpaired-previous-error)
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun evil-collection-unimpaired-setup ()
|
(defun evil-collection-unimpaired-setup ()
|
||||||
"Set up unimpaired-like bindings."
|
"Set up unimpaired-like bindings."
|
||||||
|
@ -258,7 +298,16 @@
|
||||||
"[u" 'evil-collection-unimpaired-url-encode
|
"[u" 'evil-collection-unimpaired-url-encode
|
||||||
"]u" 'evil-collection-unimpaired-url-decode
|
"]u" 'evil-collection-unimpaired-url-decode
|
||||||
"[6" 'evil-collection-unimpaired-b64-encode
|
"[6" 'evil-collection-unimpaired-b64-encode
|
||||||
"]6" 'evil-collection-unimpaired-b64-decode))
|
"]6" 'evil-collection-unimpaired-b64-decode)
|
||||||
|
|
||||||
|
(when evil-collection-unimpaired-want-repeat-mode-integration
|
||||||
|
(dolist (cmd '(evil-prev-buffer
|
||||||
|
evil-next-buffer
|
||||||
|
evil-collection-unimpaired-move-text-up
|
||||||
|
evil-collection-unimpaired-move-text-down
|
||||||
|
evil-collection-unimpaired-previous-error
|
||||||
|
evil-collection-unimpaired-next-error))
|
||||||
|
(put cmd 'repeat-map (intern (format "%s-repeat-map" cmd))))))
|
||||||
|
|
||||||
(provide 'evil-collection-unimpaired)
|
(provide 'evil-collection-unimpaired)
|
||||||
;;; evil-collection-unimpaired.el ends here
|
;;; evil-collection-unimpaired.el ends here
|
||||||
|
|
Loading…
Reference in New Issue