Internals

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.

(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.

(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.

(evil-get-command-properties COMMAND)

Return all Evil properties of COMMAND. See also evil-get-command-property.

(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.

(evil-define-command COMMAND (ARGS...) DOC [[KEY VALUE]...] BODY...)

Define a command COMMAND.

For setting repeat properties, use the following functions:

(evil-declare-repeat COMMAND)

Declare COMMAND to be repeatable.

(evil-declare-not-repeat COMMAND)

Declare COMMAND to be nonrepeatable.

(evil-declare-change-repeat COMMAND)

Declare COMMAND to be repeatable by buffer changes rather than keystrokes.

Footnotes

[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.