Command properties
Evil defines `command properties' to store information about commands [1], such as whether they should be repeated. A command property is a :keyword with an associated value, e.g. :repeat nil.
Emacs Lisp Autofunction: (evil-add-command-properties COMMAND [PROPERTIES...])
Add `PROPERTIES' to `COMMAND'. `PROPERTIES' should be a property list. To replace all properties at once, use evil-set-command-properties.
Emacs Lisp Autofunction: (evil-set-command-properties COMMAND [PROPERTIES...])
Replace all of `COMMAND'’s properties with `PROPERTIES'. `PROPERTIES' should be a property list. This erases all previous properties; to only add properties, use evil-set-command-property.
Emacs Lisp Autofunction: (evil-get-command-properties COMMAND)
Return all Evil properties of `COMMAND'. See also evil-get-command-property.
Emacs Lisp Autofunction: (evil-get-command-property COMMAND PROPERTY [DEFAULT])
Return the value of Evil `PROPERTY' of `COMMAND'. If the command does not have the property, return `DEFAULT'. See also evil-get-command-properties.
Emacs Lisp Autofunction: (evil-define-command COMMAND (ARGS...) DOC [[KEY VALUE]...] BODY...)
Define a command `COMMAND'.
For setting repeat properties, use the following functions:
Emacs Lisp Autofunction: (evil-declare-repeat COMMAND)
Declare `COMMAND' to be repeatable.
Emacs Lisp Autofunction: (evil-declare-not-repeat COMMAND)
Declare `COMMAND' to be nonrepeatable.
Emacs Lisp Autofunction: (evil-declare-change-repeat COMMAND)
Declare `COMMAND' to be repeatable by buffer changes rather than keystrokes.
(1) In this context, a `command' may mean any Evil motion, text object, operator or indeed other Emacs commands, which have not been defined through the Evil machinery. ↩︎