Function: evil-visual-rotate
evil-visual-rotate is an interactive and byte-compiled function
defined in evil-commands.el.
Signature
(evil-visual-rotate CORNER &optional BEG END TYPE)
Documentation
Move point to CORNER of the Visual selection.
Corner may be one of upper-left, upper-right, lower-left and
lower-right:
upper-left +---+ upper-right
| |
lower-left +---+ lower-right
When called interactively, the selection is rotated clockwise.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-commands.el
(evil-define-command evil-visual-rotate (corner &optional beg end type)
"Move point to CORNER of the Visual selection.
Corner may be one of `upper-left', `upper-right', `lower-left' and
`lower-right':
upper-left +---+ upper-right
| |
lower-left +---+ lower-right
When called interactively, the selection is rotated clockwise."
:keep-visual t
(interactive
(let ((corners '(#1=upper-left upper-right lower-right lower-left #1#)))
(list (cadr (memq (evil-visual-block-corner) corners)))))
(let* ((beg (or beg (point)))
(end (or end (mark t) beg))
(type (or type evil-this-type))
range)
(cond
((memq type '(rectangle block))
(setq range (evil-block-rotate beg end :corner corner)
beg (pop range)
end (pop range))
(unless (eq corner (evil-visual-block-corner corner beg end))
(evil-swap beg end))
(goto-char beg)
(when (evil-visual-state-p)
(evil-move-mark end)
(evil-visual-refresh nil nil nil :corner corner)))
((memq corner '(upper-right lower-right))
(goto-char (max beg end))
(when (evil-visual-state-p)
(evil-move-mark (min beg end))))
(t
(goto-char (min beg end))
(when (evil-visual-state-p)
(evil-move-mark (max beg end)))))))