aboutsummaryrefslogtreecommitdiffstats
path: root/elpa/evil-20220503.1314/evil.info
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/evil-20220503.1314/evil.info')
-rw-r--r--elpa/evil-20220503.1314/evil.info2235
1 files changed, 2235 insertions, 0 deletions
diff --git a/elpa/evil-20220503.1314/evil.info b/elpa/evil-20220503.1314/evil.info
new file mode 100644
index 0000000..96e70f8
--- /dev/null
+++ b/elpa/evil-20220503.1314/evil.info
@@ -0,0 +1,2235 @@
+This is evil.info, produced by makeinfo version 6.7 from evil.texi.
+
+ Evil 1.15.0, Jan 07, 2022
+
+ Eivind Fonn, Frank Fischer, Vegard Øye
+
+ Copyright © 2011-2019, Eivind Fonn, Frank Fischer, Vegard Øye
+
+INFO-DIR-SECTION Emacs
+START-INFO-DIR-ENTRY
+* evil: (evil.info). Extensible vi layer for Emacs
+END-INFO-DIR-ENTRY
+
+
+ Generated by Sphinx 4.3.2.
+
+
+File: evil.info, Node: Top, Next: Overview, Up: (dir)
+
+Evil documentation
+******************
+
+ Evil 1.15.0, Jan 07, 2022
+
+ Eivind Fonn, Frank Fischer, Vegard Øye
+
+ Copyright © 2011-2019, Eivind Fonn, Frank Fischer, Vegard Øye
+
+* Menu:
+
+* Overview::
+* Settings::
+* Keymaps::
+* Hooks::
+* Extension::
+* Frequently Asked Questions::
+* Internals::
+* The GNU Free Documentation License::
+* Emacs lisp functions and variables::
+
+ — The Detailed Node Listing —
+
+Overview
+
+* Installation via package.el: Installation via package el.
+* Manual installation::
+* Modes and states::
+
+Settings
+
+* The initial state::
+* Keybindings and other behaviour::
+* Search::
+* Indentation::
+* Cursor movement::
+* Cursor display::
+* Window management::
+* Parenthesis highlighting::
+* Miscellaneous::
+
+Keymaps
+
+* evil-define-key::
+* Leader keys::
+
+Extension
+
+* Motions::
+* Operators::
+* Text objects::
+* Range types::
+* States::
+
+Frequently Asked Questions
+
+* Problems with the escape key in the terminal::
+* Underscore is not a word character::
+
+Internals
+
+* Command properties::
+
+
+
+File: evil.info, Node: Overview, Next: Settings, Prev: Top, Up: Top
+
+1 Overview
+**********
+
+Evil is an extensible vi layer for Emacs. It emulates the main features
+of Vim, (1) turning Emacs into a modal editor. Like Emacs in general,
+Evil is extensible in Emacs Lisp.
+
+* Menu:
+
+* Installation via package.el: Installation via package el.
+* Manual installation::
+* Modes and states::
+
+ ---------- Footnotes ----------
+
+ (1) (1) Vim is the most popular version of `vi', a modal text editor
+with many implementations. Vim also adds some functions of its own,
+like visual selection and text objects. For more information see the
+official Vim website (https://vim.org).
+
+
+File: evil.info, Node: Installation via package el, Next: Manual installation, Up: Overview
+
+1.1 Installation via package.el
+===============================
+
+Evil is available as a package from MELPA stable, MELPA unstable and
+NonGNU ELPA. This is the recommended way of installing Evil.
+
+To set up ‘package.el’ to work with one of the MELPA repositories, you
+can follow the instructions on melpa.org(1).
+
+Alternatively you can use NonGNU ELPA. It is part of the default package
+archives as of Emacs 28. For older Emacs versions you’ll need to add it
+yourself:
+
+ (add-to-list 'package-archives
+ (cons "nongnu" (format "http%s://elpa.nongnu.org/nongnu/"
+ (if (gnutls-available-p) "s" ""))))
+
+Once that is done, you can execute the following commands:
+
+ M-x package-refresh-contents
+ M-x package-install RET evil RET
+
+Finally, add the following lines to your Emacs init file:
+
+ (require 'evil)
+ (evil-mode 1)
+
+ ---------- Footnotes ----------
+
+ (1) https://melpa.org/#/getting-started
+
+
+File: evil.info, Node: Manual installation, Next: Modes and states, Prev: Installation via package el, Up: Overview
+
+1.2 Manual installation
+=======================
+
+First, install ‘goto-chg’ and ‘cl-lib’. If you have an Emacs version of
+24.3 or newer, you should already have ‘cl-lib’.
+
+Evil lives in a git repository. To download Evil, do:
+
+ git clone --depth 1 https://github.com/emacs-evil/evil.git
+
+Then add the following lines to your Emacs init file:
+
+ (add-to-list 'load-path "path/to/evil")
+ (require 'evil)
+ (evil-mode 1)
+
+Ensure that your replace ‘path/to/evil’ with the actual path to where
+you cloned Evil.
+
+
+File: evil.info, Node: Modes and states, Prev: Manual installation, Up: Overview
+
+1.3 Modes and states
+====================
+
+The next time Emacs is started, it will come up in `normal state',
+denoted by ‘<N>’ in the mode line. This is where the main vi bindings
+are defined. Note that you can always disable normal state with ‘C-z’,
+which switches to an “Emacs state” (denoted by ‘<E>’) in which vi keys
+are completely disabled. Press ‘C-z’ again to switch back to normal
+state.
+
+state
+
+ Evil uses the term `state' for what is called a “mode” in regular
+ vi usage, because `modes' are understood in Emacs terms to mean
+ something else.
+
+Evil defines a number of states by default:
+
+normal state (‘<N>’)
+
+ This is the default “resting state” of Evil, in which the main body
+ of vi bindings are defined.
+
+insert state (‘<I>’)
+
+ This is the state for insertion of text, where non-modified keys
+ will insert the corresponding character in the buffer.
+
+visual state (‘<V>’)
+
+ A state for selecting text regions. Motions are available for
+ modifying the selected region, and operators are available for
+ acting on it.
+
+replace state (‘<R>’)
+
+ A special state mostly similar to insert state, except it replaces
+ text instead of inserting.
+
+operator-pending state (‘<O>’)
+
+ A special state entered after launching an operator, but before
+ specifying the corresponding motion or text object.
+
+motion state (‘<M>’)
+
+ A special state useful for buffers that are read-only, where
+ motions are available but editing operations are not.
+
+Emacs state (‘<E>’)
+
+ A state that as closely as possible mimics default Emacs behaviour,
+ by eliminating all vi bindings, except for ‘C-z’, to re-enter
+ normal state.
+
+
+File: evil.info, Node: Settings, Next: Keymaps, Prev: Overview, Up: Top
+
+2 Settings
+**********
+
+Evil’s behaviour can be adjusted by setting some variables. The list of
+all available variables and their current values can be inspected by
+doing:
+
+ M-x customize-group RET evil RET
+
+To change the value of a variable, you can use this interface, or add a
+‘setq’ form to your Emacs init file, preferably before Evil is loaded.
+(1)
+
+ (setq evil-shift-width 0)
+ ;; Load Evil
+ (require 'evil)
+
+What follows is a non-exhaustive list of the most relevant customization
+options.
+
+* Menu:
+
+* The initial state::
+* Keybindings and other behaviour::
+* Search::
+* Indentation::
+* Cursor movement::
+* Cursor display::
+* Window management::
+* Parenthesis highlighting::
+* Miscellaneous::
+
+ ---------- Footnotes ----------
+
+ (1) (1) Strictly speaking, the order only matters if the variable
+affects the way Evil is loaded. This is the case with some variables.
+
+
+File: evil.info, Node: The initial state, Next: Keybindings and other behaviour, Up: Settings
+
+2.1 The initial state
+=====================
+
+The initial state of a buffer is determined by its major mode. Evil
+maintains an association between major modes and their corresponding
+states, which is most easily modified using the function *note
+evil-set-initial-state: 30.
+
+ -- Emacs Lisp Autofunction: (evil-set-initial-state MODE STATE)
+
+ Set the initial state for major mode `MODE' to `STATE'. This is the
+ state the buffer comes up in.
+
+If no state can be found, Evil uses the default initial state.
+
+ -- Emacs Lisp Autovariable: evil-default-state
+
+ The default Evil state. This is the state a buffer starts in when
+ it is not otherwise configured (see *note evil-set-initial-state:
+ 30. and *note evil-buffer-regexps: 5.). The value may be one of
+ ‘normal’, ‘insert’, ‘visual’, ‘replace’, ‘operator’, ‘motion’ and
+ ‘emacs’.
+
+ Default: ‘normal’
+
+Alternatively, it is possible to select the initial state based on the
+buffer `name' rather than its major mode. This is checked first, so it
+takes precedence over the other methods for setting the state.
+
+ -- Emacs Lisp Autovariable: evil-buffer-regexps
+
+ Regular expressions determining the initial state for a buffer.
+ Entries have the form ‘(REGEXP . STATE)’, where `REGEXP' is a
+ regular expression matching the buffer’s name and `STATE' is one of
+ ‘normal’, ‘insert’, ‘visual’, ‘replace’, ‘operator’, ‘motion’,
+ ‘emacs’ and ‘nil’. If `STATE' is ‘nil’, Evil is disabled in the
+ buffer.
+
+ Default: ‘(("^ \\*load\\*"))’
+
+
+File: evil.info, Node: Keybindings and other behaviour, Next: Search, Prev: The initial state, Up: Settings
+
+2.2 Keybindings and other behaviour
+===================================
+
+Evil comes with a rich system for modifying its key bindings *note
+Keymaps: 4f. For the most common tweaks, the following variables are
+available.
+
+ -- Emacs Lisp Autovariable: evil-toggle-key
+
+ The key used to change to and from Emacs state. Must be readable
+ by ‘read-kbd-macro’. For example: “C-z”.
+
+ Default: ‘"C-z"’
+
+ -- Emacs Lisp Autovariable: evil-want-C-i-jump
+
+ Whether ‘C-i’ jumps forward in the jump list (like Vim).
+ Otherwise, ‘C-i’ inserts a tab character.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-want-C-u-delete
+
+ Whether ‘C-u’ deletes back to indentation in insert state.
+ Otherwise, ‘C-u’ applies a prefix argument. The binding of ‘C-u’
+ mirrors Emacs behaviour by default due to the relative ubiquity of
+ prefix arguments.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-want-C-u-scroll
+
+ Whether ‘C-u’ scrolls up (like Vim). Otherwise, ‘C-u’ applies a
+ prefix argument. The binding of ‘C-u’ mirrors Emacs behaviour by
+ default due to the relative ubiquity of prefix arguments.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-want-C-d-scroll
+
+ Whether ‘C-d’ scrolls down (like Vim).
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-want-C-w-delete
+
+ Whether ‘C-w’ deletes a word in Insert state.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-want-C-w-in-emacs-state
+
+ Whether ‘C-w’ prefixes windows commands in Emacs state.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-want-Y-yank-to-eol
+
+ Whether ‘Y’ yanks to the end of the line. The default behavior is
+ to yank the whole line, like Vim.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-disable-insert-state-bindings
+
+ Whether insert state bindings should be used. Bindings for escape,
+ delete and *note evil-toggle-key: 37. are always available. If
+ this is non-nil, default Emacs bindings are by and large accessible
+ in insert state.
+
+ Default: ‘nil’
+
+
+File: evil.info, Node: Search, Next: Indentation, Prev: Keybindings and other behaviour, Up: Settings
+
+2.3 Search
+==========
+
+ -- Emacs Lisp Autovariable: evil-search-module
+
+ The search module to be used. May be either ‘isearch’, for Emacs’
+ isearch module, or ‘evil-search’, for Evil’s own interactive search
+ module. N.b. changing this will not affect keybindings. To swap
+ out relevant keybindings, see ‘evil-select-search-module’ function.
+
+ Default: ‘isearch’
+
+ -- Emacs Lisp Autovariable: evil-regexp-search
+
+ Whether to use regular expressions for searching in ‘/’ and ‘?’.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-search-wrap
+
+ Whether search with ‘/’ and ‘?’ wraps around the buffer. If this
+ is non-nil, search stops at the buffer boundaries.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-flash-delay
+
+ Time in seconds to flash search matches after ‘n’ and ‘N’.
+
+ Default: ‘2’
+
+ -- Emacs Lisp Autovariable: evil-ex-hl-update-delay
+
+ Time in seconds of idle before updating search highlighting.
+ Setting this to a period shorter than that of keyboard’s repeat
+ rate allows highlights to update while scrolling.
+
+ Default: ‘0.02’
+
+
+File: evil.info, Node: Indentation, Next: Cursor movement, Prev: Search, Up: Settings
+
+2.4 Indentation
+===============
+
+ -- Emacs Lisp Autovariable: evil-auto-indent
+
+ Whether to auto-indent when opening lines with ‘o’ and ‘O’.
+
+ Default: ‘t’, buffer-local
+
+ -- Emacs Lisp Autovariable: evil-shift-width
+
+ The number of columns by which a line is shifted. This applies to
+ the shifting operators ‘>’ and ‘<’.
+
+ Default: ‘4’, buffer-local
+
+ -- Emacs Lisp Autovariable: evil-shift-round
+
+ Whether shifting rounds to the nearest multiple. If non-nil, ‘>’
+ and ‘<’ adjust line indentation to the nearest multiple of *note
+ evil-shift-width: 33.
+
+ Default: ‘t’, buffer-local
+
+ -- Emacs Lisp Autovariable: evil-indent-convert-tabs
+
+ If non-nil, the ‘=’ operator converts between leading tabs and
+ spaces. Whether tabs are converted to spaces or vice versa depends
+ on the value of ‘indent-tabs-mode’.
+
+ Default: ‘t’
+
+
+File: evil.info, Node: Cursor movement, Next: Cursor display, Prev: Indentation, Up: Settings
+
+2.5 Cursor movement
+===================
+
+In standard Emacs terms, the cursor is generally understood to be
+located between two characters. In Vim, and therefore also Evil, this
+is the case in insert state, but in other states the cursor is
+understood to be `on' a character, and that this character is not a
+newline.
+
+Forcing this behaviour in Emacs is the source of some potentially
+surprising results (especially for traditional Emacs users—users used to
+Vim may find the default behavior to their satisfaction). Many of them
+can be tweaked using the following variables.
+
+ -- Emacs Lisp Autovariable: evil-repeat-move-cursor
+
+ Whether repeating commands with ‘.’ may move the cursor. If nil,
+ the original cursor position is preserved, even if the command
+ normally would have moved the cursor.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-move-cursor-back
+
+ Whether the cursor is moved backwards when exiting insert state.
+ If non-nil, the cursor moves “backwards” when exiting insert state,
+ so that it ends up on the character to the left. Otherwise it
+ remains in place, on the character to the right.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-move-beyond-eol
+
+ Whether the cursor can move past the end of the line. If non-nil,
+ the cursor is allowed to move one character past the end of the
+ line, as in Emacs.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-cross-lines
+
+ Whether horizontal motions may move to other lines. If non-nil,
+ certain motions that conventionally operate in a single line may
+ move the cursor to other lines. Otherwise, they are restricted to
+ the current line. This applies to ‘h’, ‘SPC’, ‘f’, ‘F’, ‘t’, ‘T’,
+ ‘~’.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-respect-visual-line-mode
+
+ Whether movement commands respect ‘visual-line-mode’. If non-nil,
+ ‘visual-line-mode’ is generally respected when it is on. In this
+ case, motions such as ‘j’ and ‘k’ navigate by visual lines (on the
+ screen) rather than “physical” lines (defined by newline
+ characters). If nil, the setting of ‘visual-line-mode’ is ignored.
+
+ This variable must be set before Evil is loaded.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-track-eol
+
+ Whether ‘$’ “sticks” the cursor to the end of the line. If
+ non-nil, vertical motions after ‘$’ maintain the cursor at the end
+ of the line, even if the target line is longer. This is analogous
+ to ‘track-eol’, but respects Evil’s interpretation of end-of-line.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-start-of-line
+
+ Analogue of vim’s ‘startofline’. If nil, preserve column when
+ making relevant movements of the cursor. Otherwise, move the
+ cursor to the start of the line.
+
+ Default: ‘nil’
+
+
+File: evil.info, Node: Cursor display, Next: Window management, Prev: Cursor movement, Up: Settings
+
+2.6 Cursor display
+==================
+
+A state may change the appearance of the cursor. Use the variable *note
+evil-default-cursor: c. to set the default cursor, and the variables
+‘evil-normal-state-cursor’, ‘evil-insert-state-cursor’ etc. to set the
+cursors for specific states. The acceptable values for all of them are
+the same.
+
+ -- Emacs Lisp Autovariable: evil-default-cursor
+
+ The default cursor. May be a cursor type as per ‘cursor-type’, a
+ color string as passed to ‘set-cursor-color’, a zero-argument
+ function for changing the cursor, or a list of the above.
+
+ Default: ‘t’
+
+
+File: evil.info, Node: Window management, Next: Parenthesis highlighting, Prev: Cursor display, Up: Settings
+
+2.7 Window management
+=====================
+
+ -- Emacs Lisp Autovariable: evil-auto-balance-windows
+
+ If non-nil window creation and deletion trigger rebalancing.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-split-window-below
+
+ If non-nil split windows are created below.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-vsplit-window-right
+
+ If non-nil vertically split windows with are created to the right.
+
+ Default: ‘nil’
+
+
+File: evil.info, Node: Parenthesis highlighting, Next: Miscellaneous, Prev: Window management, Up: Settings
+
+2.8 Parenthesis highlighting
+============================
+
+These settings concern the integration between Evil and
+‘show-paren-mode’. They take no effect if this mode is not enabled.
+
+ -- Emacs Lisp Autovariable: evil-show-paren-range
+
+ The minimal distance between point and a parenthesis which causes
+ the parenthesis to be highlighted.
+
+ Default: ‘0’
+
+ -- Emacs Lisp Autovariable:
+ evil-highlight-closing-paren-at-point-states
+
+ The states in which the closing parenthesis at point should be
+ highlighted. All states listed here highlight the closing
+ parenthesis at point (which is Vim’s default behavior). All others
+ highlight the parenthesis before point (which is Emacs default
+ behavior). If this list contains the symbol ‘not’ then its meaning
+ is inverted, i.e. all states listed here highlight the closing
+ parenthesis before point.
+
+ Default: ‘(not emacs insert replace)’
+
+
+File: evil.info, Node: Miscellaneous, Prev: Parenthesis highlighting, Up: Settings
+
+2.9 Miscellaneous
+=================
+
+ -- Emacs Lisp Autovariable: evil-want-fine-undo
+
+ Whether actions are undone in several steps. There are two
+ possible choices: nil (“no”) means that all changes made during
+ insert state, including a possible delete after a change operation,
+ are collected in a single undo step. Non-nil (“yes”) means that
+ undo steps are determined according to Emacs heuristics, and no
+ attempt is made to aggregate changes.
+
+ For backward compatibility purposes, the value ‘fine’ is
+ interpreted as ‘nil’. This option was removed because it did not
+ work consistently.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-undo-system
+
+ Undo system Evil should use. If equal to ‘undo-tree’ or ‘undo-fu’,
+ those packages must be installed. If equal to ‘undo-tree’,
+ ‘undo-tree-mode’ must also be activated. If equal to ‘undo-redo’,
+ Evil uses commands natively available in Emacs 28.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-backspace-join-lines
+
+ Whether backward delete in insert state may join lines.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-kbd-macro-suppress-motion-error
+
+ Whether left/right motions signal errors in keyboard macros. This
+ variable only affects beginning-of-line or end-of-line errors
+ regarding the motions ‘h’ and ‘SPC’ respectively. This may be
+ desired since such errors cause macro definition or execution to be
+ terminated. There are four possibilities:
+
+ - ‘record’: errors are suppressed when recording macros, but not
+ when replaying them.
+
+ - ‘replay’: errors are suppressed when replaying macros, but not
+ when recording them.
+
+ - ‘t’: errors are suppressed in both cases.
+
+ - ‘nil’: errors are never suppressed.
+
+ Default: ‘nil’
+
+ -- Emacs Lisp Autovariable: evil-mode-line-format
+
+ The position of the state tag in the mode line. If set to ‘before’
+ or ‘after’, the tag is placed at the beginning or the end of the
+ mode-line, respectively. If nil, there is no tag. Otherwise it
+ should be a cons cell ‘(WHERE . WHICH)’, where `WHERE' is either
+ ‘before’ or ‘after’, and `WHICH' is a symbol in ‘mode-line-format’.
+ The tag is then placed before or after that symbol, respectively.
+
+ Default: ‘before’
+
+ -- Emacs Lisp Autovariable: evil-mouse-word
+
+ The `thing-at-point' symbol for double click selection. The
+ double-click starts visual state in a special word selection mode.
+ This symbol is used to determine the words to be selected.
+ Possible values are ‘evil-word’ or ‘evil-WORD’.
+
+ Default: ‘evil-word’
+
+ -- Emacs Lisp Autovariable: evil-bigword
+
+ The set of characters to be interpreted as WORD boundaries. This
+ is enclosed with square brackets and used as a regular expression.
+ By default, whitespace characters are considered WORD boundaries.
+
+ Default: ‘"^ \t\r\n"’, buffer-local
+
+ -- Emacs Lisp Autovariable: evil-esc-delay
+
+ The time, in seconds, to wait for another key after escape. If no
+ further event arrives during this time, the event is translated to
+ ‘ESC’. Otherwise, it is translated according to
+ ‘input-decode-map’. This does not apply in Emacs state, and may
+ also be inhibited by setting ‘evil-inhibit-esc’.
+
+ Default: ‘0.01’
+
+ -- Emacs Lisp Autovariable: evil-intercept-esc
+
+ Whether Evil should intercept the escape key. In the terminal,
+ escape and a meta key sequence both generate the same event. In
+ order to distingush these, Evil uses ‘input-decode-map’. It is not
+ necessary to do this in a graphical Emacs session. However, if you
+ prefer to use ‘C-[’ as escape (which is identical to the terminal
+ escape key code), this interception must also happen in graphical
+ Emacs sessions. Set this variable to ‘always’, t (only in the
+ terminal) or nil (never intercept).
+
+ Default: ‘always’
+
+ -- Emacs Lisp Autovariable: evil-kill-on-visual-paste
+
+ Whether pasting in visual state adds the replaced text to the kill
+ ring, making it the default for the next paste. The default,
+ replicates the default Vim behavior.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-echo-state
+
+ Whether to signal the current state in the echo area.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-complete-all-buffers
+
+ Whether completion looks for matches in all buffers. This applies
+ to ‘C-n’ and ‘C-p’ in insert state.
+
+ Default: ‘t’
+
+ -- Emacs Lisp Autovariable: evil-want-empty-ex-last-command
+
+ Whether to default to evil-ex-previous-command at empty ex prompt.
+
+ Default: ‘t’
+
+
+File: evil.info, Node: Keymaps, Next: Hooks, Prev: Settings, Up: Top
+
+3 Keymaps
+*********
+
+Evil’s key bindings are stored in a number of different keymaps. Each
+state has a `global keymap', where the default bindings for that state
+are stored. They are named ‘evil-normal-state-map’,
+‘evil-insert-state-map’, and so on. The bindings in these maps are
+visible in all buffers currently in the corresponding state.
+
+These keymaps function like ordinary Emacs keymaps and may be modified
+using the Emacs function ‘define-key’:
+
+ (define-key evil-normal-state-map (kbd "w") 'some-function)
+
+This binds the key ‘w’ to the command ‘some-function’ in normal state.
+The use of ‘kbd’ is optional for simple key sequences, like this one,
+but recommended in general.
+
+Most of Evil’s bindings are defined in the file ‘evil-maps.el’.
+
+To facilitate shared keybindings between states, some states may
+activate keybindings from other states as well. For example, motion
+state bindings are visible in normal and visual state, and normal state
+bindings are also visible in visual state.
+
+Each state also has a `buffer-local keymap' which is specific to the
+current buffer, and which takes precedence over the global keymap.
+These maps are most suitably modified by a mode hook. They are named
+‘evil-normal-state-local-map’, ‘evil-insert-state-local-map’, and so on.
+
+ (add-hook 'some-mode-hook
+ (lambda ()
+ (define-key evil-normal-state-local-map
+ (kbd "w") 'some-function)))
+
+For convenience, the functions *note evil-global-set-key: 1c. and *note
+evil-local-set-key: 22. are available for setting global and local state
+keys.
+
+ -- Emacs Lisp Autofunction: (evil-global-set-key STATE KEY DEF)
+
+ Bind `KEY' to `DEF' in `STATE'.
+
+ -- Emacs Lisp Autofunction: (evil-local-set-key STATE KEY DEF)
+
+ Bind `KEY' to `DEF' in `STATE' in the current buffer.
+
+The above examples could therefore have been written as follows:
+
+ (evil-global-set-key 'normal (kbd "w") 'some-function)
+
+ (add-hook 'some-mode-hook
+ (lambda ()
+ (evil-local-set-key 'normal (kbd "w") 'some-function)))
+
+* Menu:
+
+* evil-define-key::
+* Leader keys::
+
+
+File: evil.info, Node: evil-define-key, Next: Leader keys, Up: Keymaps
+
+3.1 evil-define-key
+===================
+
+Evil provides the macro *note evil-define-key: f. for adding state
+bindings to ordinary keymaps. It is quite powerful, and is the
+preferred method for fine-tuning bindings to activate in specific
+circumstances.
+
+ -- Emacs Lisp Autofunction: (evil-define-key STATE KEYMAP KEY DEF
+ [BINDINGS...])
+
+ Create a `STATE' binding from `KEY' to `DEF' for `KEYMAP'. `STATE'
+ is one of ‘normal’, ‘insert’, ‘visual’, ‘replace’, ‘operator’,
+ ‘motion’, ‘emacs’, or a list of one or more of these. Omitting a
+ state by using ‘nil’ corresponds to a standard Emacs binding using
+ ‘define-key’. The remaining arguments are like those of
+ ‘define-key’. For example:
+
+ (evil-define-key 'normal foo-map "a" 'bar)
+
+ This creates a binding from ‘a’ to ‘bar’ in normal state, which is
+ active whenever ‘foo-map’ is active. Using nil for the state, the
+ following lead to identical bindings:
+
+ (evil-define-key nil foo-map "a" 'bar)
+ (define-key foo-map "a" 'bar)
+
+ It is possible to specify multiple states and/or bindings at once:
+
+ (evil-define-key '(normal visual) foo-map
+ "a" 'bar
+ "b" 'foo)
+
+ If ‘foo-map’ has not been initialized yet, this macro adds an entry
+ to ‘after-load-functions’, delaying execution as necessary.
+
+ `KEYMAP' may also be a quoted symbol. If the symbol is ‘global’,
+ the global evil keymap corresponding to the state(s) is used,
+ meaning the following lead to identical bindings:
+
+ (evil-define-key 'normal 'global "a" 'bar)
+ (evil-global-set-key 'normal "a" 'bar)
+
+ The symbol ‘local’ may also be used, which corresponds to using
+ *note evil-local-set-key: 22. If a quoted symbol is used that is
+ not ‘global’ or ‘local’, it is assumed to be the name of a minor
+ mode, in which case ‘evil-define-minor-mode-key’ is used.
+
+There follows a brief overview of the main functions of this macro.
+
+ - Define a binding in a given state
+
+ (evil-define-key 'state 'global (kbd "key") 'target)
+
+ - Define a binding in a given state in the current buffer
+
+ (evil-define-key 'state 'local (kbd "key") 'target)
+
+ - Define a binding in a given state under the `foo-mode' major mode.
+
+ (evil-define-key 'state foo-mode-map (kbd "key") 'target)
+
+ Note that ‘foo-mode-map’ is unquoted, and that this form is safe
+ before ‘foo-mode-map’ is loaded.
+
+ - Define a binding in a given state under the `bar-mode' minor mode.
+
+ (evil-define-key 'state 'bar-mode (kbd "key") 'target)
+
+ Note that ‘bar-mode’ is quoted, and that this form is safe before
+ ‘bar-mode’ is loaded.
+
+The macro *note evil-define-key: f. can be used to augment existing
+modes with state bindings, as well as creating packages with custom
+bindings. For example, the following will create a minor mode
+‘foo-mode’ with normal state bindings for the keys ‘w’ and ‘e’:
+
+ (define-minor-mode foo-mode
+ "Foo mode."
+ :keymap (make-sparse-keymap))
+
+ (evil-define-key 'normal 'foo-mode "w" 'bar)
+ (evil-define-key 'normal 'foo-mode "e" 'baz)
+
+This minor mode can then be enabled in any buffers where the custom
+bindings are desired:
+
+ (add-hook 'text-mode-hook 'foo-mode) ; enable alongside text-mode
+
+
+File: evil.info, Node: Leader keys, Prev: evil-define-key, Up: Keymaps
+
+3.2 Leader keys
+===============
+
+Evil supports a simple implementation of Vim’s `leader' keys. To bind a
+function to a leader key you can use the expression ‘<leader>’ in a key
+mapping, e.g.
+
+ (evil-define-key 'normal 'global (kbd "<leader>fs") 'save-buffer)
+
+Likewise, you can use the expression ‘<localleader>’ to mimic Vim’s
+local leader, which is designed for mode-specific key bindings.
+
+You can use the function *note evil-set-leader: 31. to designate which
+key acts as the leader and the local leader.
+
+ -- Emacs Lisp Autofunction: (evil-set-leader STATE KEY [LOCALLEADER])
+
+ Set `KEY' to trigger leader bindings in `STATE'. `KEY' should be in
+ the form produced by ‘kbd’. `STATE' is one of ‘normal’, ‘insert’,
+ ‘visual’, ‘replace’, ‘operator’, ‘motion’, ‘emacs’, a list of one
+ or more of these, or ‘nil’, which means all of the above. If
+ `LOCALLEADER' is non-nil, set the local leader instead.
+
+
+File: evil.info, Node: Hooks, Next: Extension, Prev: Keymaps, Up: Top
+
+4 Hooks
+*******
+
+A `hook' is a list of functions that are executed when certain events
+happen. Hooks are modified with the Emacs function ‘add-hook’. Evil
+provides entry and exit hooks for all its states. For example, when
+switching from normal state to insert state, all functions in
+‘evil-normal-state-exit-hook’ and ‘evil-insert-state-entry-hook’ are
+executed.
+
+It is guaranteed that the exit hook will be executed before the entry
+hook on all state switches.
+
+During the hook execution, the variables ‘evil-next-state’ and
+‘evil-previous-state’ contain information about the states being
+switched to and from, respectively.
+
+
+File: evil.info, Node: Extension, Next: Frequently Asked Questions, Prev: Hooks, Up: Top
+
+5 Extension
+***********
+
+The main functionality of Evil is implemented in terms of reusable
+macros. Package writers can use these to define new commands.
+
+* Menu:
+
+* Motions::
+* Operators::
+* Text objects::
+* Range types::
+* States::
+
+
+File: evil.info, Node: Motions, Next: Operators, Up: Extension
+
+5.1 Motions
+===========
+
+A `motion' is a command which moves the cursor, such as ‘w’ or ‘e’.
+Motions are defined with the macro *note evil-define-motion: 10.
+Motions not defined in this way should be declared with *note
+evil-declare-motion: 9.
+
+ -- Emacs Lisp Autofunction: (evil-declare-motion COMMAND)
+
+ Declare `COMMAND' to be a movement function. This ensures that it
+ behaves correctly in visual state.
+
+ -- Emacs Lisp Autofunction: (evil-define-motion MOTION (COUNT ARGS...)
+ DOC [[KEY VALUE]...] BODY...)
+
+ Define a motion command `MOTION'. `ARGS' is a list of arguments.
+ Motions can have any number of arguments, but the first (if any)
+ has the predefined meaning of count. `BODY' must execute the
+ motion by moving point.
+
+ Optional keyword arguments are:
+
+ - ‘:type’ - determines how the motion works after an operator
+ (one of ‘inclusive’, ‘line’, ‘block’ and ‘exclusive’, or a
+ self-defined motion type)
+
+ - ‘:jump’ - if non-nil, the previous position is stored in the
+ jump list, so that it can be restored with ‘C-o’
+
+For example, this is a motion that moves the cursor forward by a number
+of characters:
+
+ (evil-define-motion foo-forward (count)
+ "Move to the right by COUNT characters."
+ :type inclusive
+ (forward-char (or count 1)))
+
+The `type' of a motion determines how it works when used together with
+an operator. Inclusive motions include the endpoint in the range being
+operated on, while exclusive motions do not. Line motions extend the
+whole range to linewise positions, effectively behaving as if the
+endpoint were really at the end of the line. Blockwise ranges behave as
+a “rectangle” on screen rather than a contiguous range of characters.
+
+
+File: evil.info, Node: Operators, Next: Text objects, Prev: Motions, Up: Extension
+
+5.2 Operators
+=============
+
+An operator is a command that acts on the text moved over by a motion,
+such as ‘c’ (change), ‘d’ (delete) or ‘y’ (yank or copy, not to be
+confused with “yank” in Emacs terminology which means `paste').
+
+ -- Emacs Lisp Autofunction: (evil-define-operator OPERATOR (BEG END
+ ARGS...) DOC [[KEY VALUE]...] BODY...)
+
+ Define an operator command `OPERATOR'. The operator acts on the
+ range of characters `BEG' through `END'. `BODY' must execute the
+ operator by potentially manipulating the buffer contents, or
+ otherwise causing side effects to happen.
+
+ Optional keyword arguments are:
+
+ - ‘:type’ - force the input range to be of a given type
+ (‘inclusive’, ‘line’, ‘block’, and ‘exclusive’, or a
+ self-defined motion type).
+
+ - ‘:motion’ - use a predetermined motion instead of waiting for
+ one from the keyboard. This does not affect the behavior in
+ visual state, where selection boundaries are always used.
+
+ - ‘:repeat’ - if non-nil (default), then ‘.’ will repeat the
+ operator.
+
+ - ‘:move-point’ - if non-nil (default), the cursor will be moved
+ to the beginning of the range before the body executes
+
+ - ‘:keep-visual’ - if non-nil, the selection is not disabled
+ when the operator is executed in visual state. By default,
+ visual state is exited automatically.
+
+For example, this is an operator that performs ROT13 encryption on the
+text under consideration:
+
+ (evil-define-operator evil-rot13 (beg end)
+ "ROT13 encrypt text."
+ (rot13-region beg end))
+
+Binding this to ‘g?’ (where it is by default) will cause a key sequence
+such as ‘g?w’ to encrypt from the current cursor to the end of the word.
+
+
+File: evil.info, Node: Text objects, Next: Range types, Prev: Operators, Up: Extension
+
+5.3 Text objects
+================
+
+Text objects are like motions in that they define a range over which an
+operator may act. Unlike motions, text objects can set both a beginning
+and an endpoint. In visual state, text objects alter both ends of the
+selection.
+
+Text objects are not directly usable in normal state. Instead, they are
+bound in the two keymaps ‘evil-inner-text-ojects-map’ and
+‘evil-outer-text-objects-map’, which are available in visual and
+operator-pending state under the keys ‘i’ and ‘a’ respectively.
+
+ -- Emacs Lisp Autofunction: (evil-define-text-object OBJECT (COUNT) DOC
+ [[KEY VALUE]...] BODY...)
+
+ Define a text object command `OBJECT'. `BODY' should return a range
+ ‘(BEG END)’ to the right of point if `COUNT' is positive, and to
+ the left of it if negative.
+
+ Optional keyword arguments:
+
+ - ‘:type’ - determines how the range applies after an operator
+ (‘inclusive’, ‘line’, ‘block’, and ‘exclusive’, or a
+ self-defined motion type).
+
+ - ‘:extend-selection’ - if non-nil (default), the text object
+ always enlarges the current selection. Otherwise, it replaces
+ the current selection.
+
+For eample, this is a text object which selects the next three
+characters after the current location:
+
+ (evil-define-text-object foo (count)
+ "Select three characters."
+ (list (point) (+ 3 (point))))
+
+For convenience, Evil provides several functions returning a list of
+positions which can be used for defining text objects. All of them
+follow the convention that a positive `count' selects text after the
+current location, while negative `count' selects text before it.
+
+ Note: The `thingatpt' library is used quite extensively in Evil to
+ define text objects, and this dependency leaks through in the
+ following functions. A `thing' in this context is any symbol for
+ which there is a function called ‘forward-THING’ (1) which moves
+ past a number of `things'.
+
+ -- Emacs Lisp Autofunction: (evil-select-inner-object THING BEG END
+ TYPE [COUNT LINE])
+
+ Return an inner text object range of `COUNT' objects. If `COUNT'
+ is positive, return objects following point; if `COUNT' is
+ negative, return objects preceding point. If one is unspecified,
+ the other is used with a negative argument. `THING' is a symbol
+ understood by `thing-at-point'. `BEG', `END' and `TYPE' specify
+ the current selection. If `LINE' is non-nil, the text object
+ should be linewise, otherwise it is character wise.
+
+ -- Emacs Lisp Autofunction: (evil-select-an-object THING BEG END TYPE
+ COUNT [LINE])
+
+ Return an outer text object range of `COUNT' objects. If `COUNT'
+ is positive, return objects following point; if `COUNT' is
+ negative, return objects preceding point. If one is unspecified,
+ the other is used with a negative argument. `THING' is a symbol
+ understood by `thing-at-point'. `BEG', `END' and `TYPE' specify
+ the current selection. If `LINE' is non-nil, the text object
+ should be linewise, otherwise it is character wise.
+
+ -- Emacs Lisp Autofunction: (evil-select-paren OPEN CLOSE BEG END TYPE
+ COUNT [INCLUSIVE])
+
+ Return a range ‘(BEG END)’ of `COUNT' delimited text objects.
+ `OPEN' and `CLOSE' specify the opening and closing delimiter,
+ respectively. `BEG' `END' `TYPE' are the currently selected
+ (visual) range. If `INCLUSIVE' is non-nil, `OPEN' and `CLOSE' are
+ included in the range; otherwise they are excluded.
+
+ The types of `OPEN' and `CLOSE' specify which kind of THING is used
+ for parsing with ‘evil-select-block’. If `OPEN' and `CLOSE' are
+ characters ‘evil-up-paren’ is used. Otherwise `OPEN' and `CLOSE'
+ must be regular expressions and ‘evil-up-block’ is used.
+
+ If the selection is exclusive, whitespace at the end or at the
+ beginning of the selection until the end-of-line or
+ beginning-of-line is ignored.
+
+ ---------- Footnotes ----------
+
+ (1) (1) There are many more ways that a `thing' can be defined, but
+the definition of ‘forward-THING’ is perhaps the most straightforward
+way to go about it.
+
+
+File: evil.info, Node: Range types, Next: States, Prev: Text objects, Up: Extension
+
+5.4 Range types
+===============
+
+A `type' is a transformation acting on a pair of buffer positions. Evil
+defines the types ‘inclusive’, ‘line’, ‘block’ and ‘exclusive’, which
+are used for motion ranges and visual selection. New types may be
+defined with the macro `evil-define-type'.
+
+ -- Emacs Lisp Autofunction: (evil-define-type TYPE DOC [[KEY FUNC]...])
+
+ Define type `TYPE'. `DOC' is a general description and shows up in
+ all docstrings.
+
+ Optional keyword arguments:
+
+ - ‘:expand’ - expansion function. This function should accept
+ two positions in the current buffer, BEG and END,and return a
+ pair of expanded buffer positions.
+
+ - ‘:contract’ - the opposite of ‘:expand’. Optional.
+
+ - ‘:one-to-one’ - non-nil if expansion is one-to-one. This
+ means that ‘:expand’ followed by ‘:contract’ always return the
+ original range.
+
+ - ‘:normalize’ - normalization function. This function should
+ accept two unexpanded positions and adjust them before
+ expansion. May be used to deal with buffer boundaries.
+
+ - ‘:string’ - description function. Takes two buffer positions
+ and returns a human-readable string. For example “2 lines”
+
+ If further keywords and functions are specified, they are assumed
+ to be transformations on buffer positions, like ‘:expand’ and
+ ‘:contract’.
+
+
+File: evil.info, Node: States, Prev: Range types, Up: Extension
+
+5.5 States
+==========
+
+States are defined with the macro *note evil-define-state: 12, which
+takes care to define the necessary hooks, keymaps and variables, as well
+as a toggle function ‘evil-NAME-state’ and a predicate function
+‘evil-NAME-state-p’ for checking whether the state is active.
+
+ -- Emacs Lisp Autofunction: (evil-define-state STATE DOC [[KEY VAL]...]
+ BODY...)
+
+ Define an Evil state `STATE'. `DOC' is a general description and
+ shows up in all docstrings; the first line of the string should be
+ the full name of the state.
+
+ `BODY' is executed each time the state is enabled or disabled.
+
+ Optional keyword arguments:
+
+ - ‘:tag’ - the mode line indicator, e.g. “<T>”.
+
+ - ‘:message’ - string shown in the echo area when the state is
+ activated.
+
+ - ‘:cursor’ - default cursor specification.
+
+ - ‘:enable’ - list of other state keymaps to enable when in this
+ state.
+
+ - ‘:entry-hook’ - list of functions to run when entering this
+ state.
+
+ - ‘:exit-hook’ - list of functions to run when exiting this
+ state.
+
+ - ‘:suppress-keymap’ - if non-nil, effectively disables bindings
+ to ‘self-insert-command’ by making ‘evil-suppress-map’ the
+ parent of the global state keymap.
+
+ The global keymap of this state will be ‘evil-test-state-map’, the
+ local keymap will be ‘evil-test-state-local-map’, and so on.
+
+For example:
+
+ (evil-define-state test
+ "Test state."
+ :tag " <T> "
+ (message (if (evil-test-state-p)
+ "Enabling test state."
+ "Disabling test state.")))
+
+
+File: evil.info, Node: Frequently Asked Questions, Next: Internals, Prev: Extension, Up: Top
+
+6 Frequently Asked Questions
+****************************
+
+* Menu:
+
+* Problems with the escape key in the terminal::
+* Underscore is not a word character::
+
+
+File: evil.info, Node: Problems with the escape key in the terminal, Next: Underscore is not a word character, Up: Frequently Asked Questions
+
+6.1 Problems with the escape key in the terminal
+================================================
+
+A common problem when using Evil in terminal mode is a certain delay
+after pressing the escape key. Even more, when pressing the escape key
+followed quickly by another key the command is recognized as ‘M-<key>’
+instead of two separate keys: ‘ESC’ followed by ‘<key>’. In fact, it is
+perfectly valid to simulate ‘M-<key>’ by pressing ‘ESC <key>’ quickly
+(but see below).
+
+The reason for this is that in terminal mode a key sequence involving
+the meta key (or alt key) always generates a so called “escape
+sequence”, i.e. a sequence of two events sent to Emacs, the first being
+‘ESC’ and the second the key pressed simultaneously. The problem is
+that pressing the escape key itself also generates the ‘ESC’ event.
+Thus, if Emacs (and therefore Evil) receives an ‘ESC’ event there is no
+way to tell whether the escape key has been pressed (and no further
+event will arrive) or a ‘M-<key>’ combination has been pressed (and the
+‘<key>’ event will arrive soon). In order to distinguish both
+situations Evil does the following. After receiving an ‘ESC’ event Evil
+waits for a short time period (specified by the variable *note
+evil-esc-delay: 17. which defaults to 0.01 seconds) for another event.
+If no other event arrives Evil assumes that the plain escape key has
+been pressed, otherwise it assumes a ‘M-<key>’ combination has been
+pressed and combines the ‘ESC’ event with the second one. Because a
+‘M-<key>’ sequence usually generates both events in very quick
+succession, 0.01 seconds are usually enough and the delay is hardly
+noticeable by the user.
+
+If you use a terminal multiplexer like `tmux' or `screen' the situation
+may be worse. These multiplexers have exactly the same problem
+recognizing ‘M-<key>’ sequences and often introduce their own delay for
+the ‘ESC’ key. There is no way for Evil to influence this delay. In
+order to reduce it you must reconfigure your terminal multiplexer.
+
+Note that this problem should not arise when using Evil in graphical
+mode. The reason is that in this case the escape key itself generates a
+different command, namely ‘escape’ (a symbol) and hence Evil can
+distinguish whether the escape key or a ‘M-<key>’ combination has been
+pressed. But this also implies that pressing ‘ESC’ followed by <key>
+cannot be used to simulate ‘M-<key>’ in graphical mode!
+
+
+File: evil.info, Node: Underscore is not a word character, Prev: Problems with the escape key in the terminal, Up: Frequently Asked Questions
+
+6.2 Underscore is not a word character
+======================================
+
+An underscore ‘_’ is a word character in Vim. This means that word
+motions like ‘w’ skip over underlines in a sequence of letters as if it
+was a letter itself. In contrast, in Evil the underscore is often a
+non-word character like operators, e.g. ‘+’.
+
+The reason is that Evil uses Emacs’ definition of a word and this
+definition does often not include the underscore. In Emacs word
+characters are determined by the syntax-class of the buffer. The
+syntax-class usually depends on the major-mode of this buffer. This has
+the advantage that the definition of a “word” may be adapted to the
+particular type of document being edited. Evil uses Emacs’ definition
+and does not simply use Vim’s definition in order to be consistent with
+other Emacs functions. For example, word characters are exactly those
+characters that are matched by the regular expression character class
+‘[:word:]’.
+
+If you would be satisfied by having the ‘*’ and ‘#’ searches use symbols
+instead of words, this can be achieved by setting the
+‘evil-symbol-word-search’ variable to ‘t’.
+
+If you want the underscore to be recognised as word character for other
+motions, you can modify its entry in the syntax-table:
+
+ (modify-syntax-entry ?_ "w")
+
+This gives the underscore the ‘word’ syntax class. You can use a
+mode-hook to modify the syntax-table in all buffers of some mode, e.g.:
+
+ (add-hook 'c-mode-common-hook
+ (lambda () (modify-syntax-entry ?_ "w")))
+
+This gives the underscore the word syntax-class in all C-like buffers.
+
+Similarly to Emacs’ definition of a word, the definition of a “symbol”
+is also dependent on the syntax-class of the buffer, which often
+includes the underscore. The default text objects keymap associates
+kbd::‘o’ with the symbol object, making kbd::‘cio’ a good alternative to
+Vim’s kbd::‘ciw’, for example. The following will swap between the word
+and symbol objects in the keymap:
+
+ (define-key evil-outer-text-objects-map "w" 'evil-a-symbol)
+ (define-key evil-inner-text-objects-map "w" 'evil-inner-symbol)
+ (define-key evil-outer-text-objects-map "o" 'evil-a-word)
+ (define-key evil-inner-text-objects-map "o" 'evil-inner-word)
+
+This will not change the motion keys, however. One way to make word
+motions operate as symbol motions is to alias the ‘evil-word’ `thing'
+(1) to the ‘evil-symbol’ thing:
+
+ (defalias 'forward-evil-word 'forward-evil-symbol)
+
+ ---------- Footnotes ----------
+
+ (1) (1) Many of Evil’s text objects and motions are defined in terms
+of the `thingatpt' library, which in this case are defined entirely in
+terms of ‘forward-THING’ functions. Thus aliasing one to another should
+make all motions and text objects implemented in terms of that `thing'
+behave the same.
+
+
+File: evil.info, Node: Internals, Next: The GNU Free Documentation License, Prev: Frequently Asked Questions, Up: Top
+
+7 Internals
+***********
+
+* Menu:
+
+* Command properties::
+
+
+File: evil.info, Node: Command properties, Up: Internals
+
+7.1 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 *note
+ evil-set-command-properties: 2f.
+
+ -- 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 *note
+ evil-get-command-property: 1b.
+
+ -- 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 *note
+ evil-get-command-properties: 1a.
+
+ -- 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.
+
+ ---------- Footnotes ----------
+
+ (1) (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.
+
+
+File: evil.info, Node: The GNU Free Documentation License, Next: Emacs lisp functions and variables, Prev: Internals, Up: Top
+
+8 The GNU Free Documentation License
+************************************
+
+Version 1.3, 3 November 2008
+
+ Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software
+ Foundation, Inc. ‘http://fsf.org/’
+
+ Everyone is permitted to copy and distribute verbatim copies of
+ this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document `free' in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of “copyleft”, which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book. We
+ recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work, in any medium,
+ that contains a notice placed by the copyright holder saying it can
+ be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ “Document”, below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as “you”. You accept
+ the license if you copy, modify or distribute the work in a way
+ requiring permission under copyright law.
+
+ A “Modified Version” of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A “Secondary Section” is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document’s overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ regarding them.
+
+ The “Invariant Sections” are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in the
+ notice that says that the Document is released under this License.
+ If a section does not fit the above definition of Secondary then it
+ is not allowed to be designated as Invariant. The Document may
+ contain zero Invariant Sections. If the Document does not identify
+ any Invariant Sections then there are none.
+
+ The “Cover Texts” are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A “Transparent” copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ straightforwardly with generic text editors or (for images composed
+ of pixels) generic paint programs or (for drawings) some widely
+ available drawing editor, and that is suitable for input to text
+ formatters or for automatic translation to a variety of formats
+ suitable for input to text formatters. A copy made in an otherwise
+ Transparent file format whose markup, or absence of markup, has
+ been arranged to thwart or discourage subsequent modification by
+ readers is not Transparent. An image format is not Transparent if
+ used for any substantial amount of text. A copy that is not
+ “Transparent” is called “Opaque”.
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and standard-conforming
+ simple HTML, PostScript or PDF designed for human modification.
+ Examples of transparent image formats include PNG, XCF and JPG.
+ Opaque formats include proprietary formats that can be read and
+ edited only by proprietary word processors, SGML or XML for which
+ the DTD and/or processing tools are not generally available, and
+ the machine-generated HTML, PostScript or PDF produced by some word
+ processors for output purposes only.
+
+ The “Title Page” means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, “Title
+ Page” means the text near the most prominent appearance of the
+ work’s title, preceding the beginning of the body of the text.
+
+ The “publisher” means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section “Entitled XYZ” means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.)
+ To “Preserve the Title” of such a section when you modify the
+ Document means that it remains a section “Entitled XYZ” according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow the
+ conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document’s license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the title
+ equally prominent and visible. You may add other material on the
+ covers in addition. Copying with changes limited to the covers, as
+ long as they preserve the title of the Document and satisfy these
+ conditions, can be treated as verbatim copying in other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a machine-readable
+ Transparent copy along with each Opaque copy, or state in or with
+ each Opaque copy a computer-network location from which the general
+ network-using public has access to download using public-standard
+ network protocols a complete Transparent copy of the Document, free
+ of added material. If you use the latter option, you must take
+ reasonably prudent steps, when you begin distribution of Opaque
+ copies in quantity, to ensure that this Transparent copy will
+ remain thus accessible at the stated location until at least one
+ year after the last time you distribute an Opaque copy (directly or
+ through your agents or retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of copies,
+ to give them a chance to provide you with an updated version of the
+ Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with the
+ Modified Version filling the role of the Document, thus licensing
+ distribution and modification of the Modified Version to whoever
+ possesses a copy of it. In addition, you must do these things in
+ the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title
+ as a previous version if the original publisher of that
+ version gives permission.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document’s
+ license notice.
+
+ H. Include an unaltered copy of this License.
+
+ I. Preserve the section Entitled “History”, Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on the
+ Title Page. If there is no section Entitled “History” in the
+ Document, create one stating the title, year, authors, and
+ publisher of the Document as given on its Title Page, then add
+ an item describing the Modified Version as stated in the
+ previous sentence.
+
+ J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in the
+ “History” section. You may omit a network location for a work
+ that was published at least four years before the Document
+ itself, or if the original publisher of the version it refers
+ to gives permission.
+
+ K. For any section Entitled “Acknowledgements” or “Dedications”,
+ Preserve the Title of the section, and preserve in the section
+ all the substance and tone of each of the contributor
+ acknowledgements and/or dedications given therein.
+
+ L. Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the
+ equivalent are not considered part of the section titles.
+
+ M. Delete any section Entitled “Endorsements”. Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ “Endorsements” or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option designate
+ some or all of these sections as invariant. To do this, add their
+ titles to the list of Invariant Sections in the Modified Version’s
+ license notice. These titles must be distinct from any other
+ section titles.
+
+ You may add a section Entitled “Endorsements”, provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties—for example, statements of peer review or that the text has
+ been approved by an organization as the authoritative definition of
+ a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end of
+ the list of Cover Texts in the Modified Version. Only one passage
+ of Front-Cover Text and one of Back-Cover Text may be added by (or
+ through arrangements made by) any one entity. If the Document
+ already includes a cover text for the same cover, previously added
+ by you or by arrangement made by the same entity you are acting on
+ behalf of, you may not add another; but you may replace the old
+ one, on explicit permission from the previous publisher that added
+ the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination all
+ of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ “History” in the various original documents, forming one section
+ Entitled “History”; likewise combine any sections Entitled
+ “Acknowledgements”, and any sections Entitled “Dedications”. You
+ must delete all sections Entitled “Endorsements.”
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the documents
+ in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow this
+ License in all other respects regarding verbatim copying of that
+ document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of a
+ storage or distribution medium, is called an “aggregate” if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation’s users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document’s Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled “Acknowledgements”,
+ “Dedications”, or “History”, the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from you
+ under this License. If your rights have been terminated and not
+ permanently reinstated, receipt of a copy of some or all of the
+ same material does not give you any rights to use it.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ ‘http://www.gnu.org/copyleft’.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License “or any later version” applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If the
+ Document does not specify a version number of this License, you may
+ choose any version ever published (not as a draft) by the Free
+ Software Foundation. If the Document specifies that a proxy can
+ decide which future versions of this License can be used, that
+ proxy’s public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A “Massive Multiauthor Collaboration” (or “MMC”) contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ “Incorporate” means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is “eligible for relicensing” if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+File: evil.info, Node: Emacs lisp functions and variables, Prev: The GNU Free Documentation License, Up: Top
+
+Emacs lisp functions and variables
+**********************************
+
+* Menu:
+
+* evil-add-command-properties: 0.
+* evil-auto-balance-windows: 1.
+* evil-auto-indent: 2.
+* evil-backspace-join-lines: 3.
+* evil-bigword: 4.
+* evil-buffer-regexps: 5.
+* evil-complete-all-buffers: 6.
+* evil-cross-lines: 7.
+* evil-declare-change-repeat: 8.
+* evil-declare-motion: 9.
+* evil-declare-not-repeat: a.
+* evil-declare-repeat: b.
+* evil-default-cursor: c.
+* evil-default-state: d.
+* evil-define-command: e.
+* evil-define-key: f.
+* evil-define-motion: 10.
+* evil-define-operator: 11.
+* evil-define-state: 12.
+* evil-define-text-object: 13.
+* evil-define-type: 14.
+* evil-disable-insert-state-bindings: 15.
+* evil-echo-state: 16.
+* evil-esc-delay: 17.
+* evil-ex-hl-update-delay: 18.
+* evil-flash-delay: 19.
+* evil-get-command-properties: 1a.
+* evil-get-command-property: 1b.
+* evil-global-set-key: 1c.
+* evil-highlight-closing-paren-at-point-states: 1d.
+* evil-indent-convert-tabs: 1e.
+* evil-intercept-esc: 1f.
+* evil-kbd-macro-suppress-motion-error: 20.
+* evil-kill-on-visual-paste: 21.
+* evil-local-set-key: 22.
+* evil-mode-line-format: 23.
+* evil-mouse-word: 24.
+* evil-move-beyond-eol: 25.
+* evil-move-cursor-back: 26.
+* evil-regexp-search: 27.
+* evil-repeat-move-cursor: 28.
+* evil-respect-visual-line-mode: 29.
+* evil-search-module: 2a.
+* evil-search-wrap: 2b.
+* evil-select-an-object: 2c.
+* evil-select-inner-object: 2d.
+* evil-select-paren: 2e.
+* evil-set-command-properties: 2f.
+* evil-set-initial-state: 30.
+* evil-set-leader: 31.
+* evil-shift-round: 32.
+* evil-shift-width: 33.
+* evil-show-paren-range: 34.
+* evil-split-window-below: 35.
+* evil-start-of-line: 36.
+* evil-toggle-key: 37.
+* evil-track-eol: 38.
+* evil-undo-system: 39.
+* evil-vsplit-window-right: 3a.
+* evil-want-C-d-scroll: 3b.
+* evil-want-C-i-jump: 3c.
+* evil-want-C-u-delete: 3d.
+* evil-want-C-u-scroll: 3e.
+* evil-want-C-w-delete: 3f.
+* evil-want-C-w-in-emacs-state: 40.
+* evil-want-empty-ex-last-command: 41.
+* evil-want-fine-undo: 42.
+* evil-want-Y-yank-to-eol: 43.
+
+
+
+Tag Table:
+Node: Top364
+Ref: index doc611
+Ref: 44611
+Node: Overview1443
+Ref: overview doc1518
+Ref: 451518
+Ref: overview evil1518
+Ref: 461518
+Ref: overview overview1518
+Ref: 471518
+Ref: Overview-Footnote-11871
+Node: Installation via package el2123
+Ref: overview installation-via-package-el2221
+Ref: 482221
+Ref: Installation via package el-Footnote-13156
+Node: Manual installation3200
+Ref: overview manual-installation3323
+Ref: 493323
+Node: Modes and states3861
+Ref: overview modes-and-states3948
+Ref: 4a3948
+Node: Settings5699
+Ref: settings doc5778
+Ref: 4b5778
+Ref: settings settings5778
+Ref: 4c5778
+Ref: Settings-Footnote-16537
+Node: The initial state6678
+Ref: settings the-initial-state6778
+Ref: 4d6778
+Ref: settings elispobj-evil-set-initial-state7053
+Ref: 307053
+Ref: settings elispobj-evil-default-state7292
+Ref: d7292
+Ref: settings elispobj-evil-buffer-regexps7903
+Ref: 57903
+Node: Keybindings and other behaviour8396
+Ref: settings keybindings-and-other-behaviour8511
+Ref: 4e8511
+Ref: settings elispobj-evil-toggle-key8733
+Ref: 378733
+Ref: settings elispobj-evil-want-C-i-jump8933
+Ref: 3c8933
+Ref: settings elispobj-evil-want-C-u-delete9123
+Ref: 3d9123
+Ref: settings elispobj-evil-want-C-u-scroll9442
+Ref: 3e9442
+Ref: settings elispobj-evil-want-C-d-scroll9735
+Ref: 3b9735
+Ref: settings elispobj-evil-want-C-w-delete9858
+Ref: 3f9858
+Ref: settings elispobj-evil-want-C-w-in-emacs-state9988
+Ref: 409988
+Ref: settings elispobj-evil-want-Y-yank-to-eol10138
+Ref: 4310138
+Ref: settings elispobj-evil-disable-insert-state-bindings10333
+Ref: 1510333
+Node: Search10661
+Ref: settings search10770
+Ref: 5010770
+Ref: settings elispobj-evil-search-module10793
+Ref: 2a10793
+Ref: settings elispobj-evil-regexp-search11178
+Ref: 2711178
+Ref: settings elispobj-evil-search-wrap11329
+Ref: 2b11329
+Ref: settings elispobj-evil-flash-delay11535
+Ref: 1911535
+Ref: settings elispobj-evil-ex-hl-update-delay11678
+Ref: 1811678
+Node: Indentation11951
+Ref: settings indentation12044
+Ref: 5112044
+Ref: settings elispobj-evil-auto-indent12077
+Ref: 212077
+Ref: settings elispobj-evil-shift-width12235
+Ref: 3312235
+Ref: settings elispobj-evil-shift-round12441
+Ref: 3212441
+Ref: settings elispobj-evil-indent-convert-tabs12702
+Ref: 1e12702
+Node: Cursor movement12971
+Ref: settings cursor-movement13072
+Ref: 5213072
+Ref: settings elispobj-evil-repeat-move-cursor13651
+Ref: 2813651
+Ref: settings elispobj-evil-move-cursor-back13915
+Ref: 2613915
+Ref: settings elispobj-evil-move-beyond-eol14260
+Ref: 2514260
+Ref: settings elispobj-evil-cross-lines14502
+Ref: 714502
+Ref: settings elispobj-evil-respect-visual-line-mode14897
+Ref: 2914897
+Ref: settings elispobj-evil-track-eol15412
+Ref: 3815412
+Ref: settings elispobj-evil-start-of-line15780
+Ref: 3615780
+Node: Cursor display16034
+Ref: settings cursor-display16141
+Ref: 5316141
+Ref: settings elispobj-evil-default-cursor16485
+Ref: c16485
+Node: Window management16768
+Ref: settings window-management16884
+Ref: 5416884
+Ref: settings elispobj-evil-auto-balance-windows16929
+Ref: 116929
+Ref: settings elispobj-evil-split-window-below17075
+Ref: 3517075
+Ref: settings elispobj-evil-vsplit-window-right17204
+Ref: 3a17204
+Node: Parenthesis highlighting17357
+Ref: settings parenthesis-highlighting17472
+Ref: 5517472
+Ref: settings elispobj-evil-show-paren-range17661
+Ref: 3417661
+Ref: settings elispobj-evil-highlight-closing-paren-at-point-states17848
+Ref: 1d17848
+Node: Miscellaneous18434
+Ref: settings miscellaneous18523
+Ref: 5618523
+Ref: settings elispobj-evil-want-fine-undo18560
+Ref: 4218560
+Ref: settings elispobj-evil-undo-system19199
+Ref: 3919199
+Ref: settings elispobj-evil-backspace-join-lines19558
+Ref: 319558
+Ref: settings elispobj-evil-kbd-macro-suppress-motion-error19699
+Ref: 2019699
+Ref: settings elispobj-evil-mode-line-format20454
+Ref: 2320454
+Ref: settings elispobj-evil-mouse-word20986
+Ref: 2420986
+Ref: settings elispobj-evil-bigword21327
+Ref: 421327
+Ref: settings elispobj-evil-esc-delay21631
+Ref: 1721631
+Ref: settings elispobj-evil-intercept-esc22037
+Ref: 1f22037
+Ref: settings elispobj-evil-kill-on-visual-paste22663
+Ref: 2122663
+Ref: settings elispobj-evil-echo-state22924
+Ref: 1622924
+Ref: settings elispobj-evil-complete-all-buffers23053
+Ref: 623053
+Ref: settings elispobj-evil-want-empty-ex-last-command23254
+Ref: 4123254
+Node: Keymaps23412
+Ref: keymaps doc23488
+Ref: 5723488
+Ref: keymaps chapter-keymaps23488
+Ref: 4f23488
+Ref: keymaps keymaps23488
+Ref: 5823488
+Ref: keymaps elispobj-evil-global-set-key25140
+Ref: 1c25140
+Ref: keymaps elispobj-evil-local-set-key25244
+Ref: 2225244
+Node: evil-define-key25673
+Ref: keymaps evil-define-key25750
+Ref: 5925750
+Ref: keymaps elispobj-evil-define-key26004
+Ref: f26004
+Node: Leader keys29201
+Ref: keymaps leader-keys29278
+Ref: 5a29278
+Ref: keymaps elispobj-evil-set-leader29805
+Ref: 3129805
+Node: Hooks30258
+Ref: hooks doc30335
+Ref: 5b30335
+Ref: hooks hooks30335
+Ref: 5c30335
+Node: Extension30987
+Ref: extension doc31083
+Ref: 5d31083
+Ref: extension extension31083
+Ref: 5e31083
+Node: Motions31319
+Ref: extension motions31388
+Ref: 5f31388
+Ref: extension elispobj-evil-declare-motion31641
+Ref: 931641
+Ref: extension elispobj-evil-define-motion31814
+Ref: 1031814
+Node: Operators33205
+Ref: extension operators33295
+Ref: 6033295
+Ref: extension elispobj-evil-define-operator33543
+Ref: 1133543
+Node: Text objects35148
+Ref: extension text-objects35242
+Ref: 6135242
+Ref: extension elispobj-evil-define-text-object35782
+Ref: 1335782
+Ref: extension elispobj-evil-select-inner-object37286
+Ref: 2d37286
+Ref: extension elispobj-evil-select-an-object37856
+Ref: 2c37856
+Ref: extension elispobj-evil-select-paren38423
+Ref: 2e38423
+Ref: Text objects-Footnote-139345
+Node: Range types39511
+Ref: extension range-types39602
+Ref: 6239602
+Ref: extension elispobj-evil-define-type39905
+Ref: 1439905
+Node: States41074
+Ref: extension states41144
+Ref: 6341144
+Ref: extension elispobj-evil-define-state41444
+Ref: 1241444
+Node: Frequently Asked Questions42873
+Ref: faq doc42973
+Ref: 6442973
+Ref: faq frequently-asked-questions42973
+Ref: 6542973
+Node: Problems with the escape key in the terminal43130
+Ref: faq problems-with-the-escape-key-in-the-terminal43278
+Ref: 6643278
+Node: Underscore is not a word character45772
+Ref: faq underscore-is-not-a-word-character45920
+Ref: 6745920
+Ref: Underscore is not a word character-Footnote-148518
+Node: Internals48829
+Ref: internals doc48954
+Ref: 6848954
+Ref: internals internals48954
+Ref: 6948954
+Node: Command properties49012
+Ref: internals command-properties49074
+Ref: 6a49074
+Ref: internals elispobj-evil-add-command-properties49329
+Ref: 049329
+Ref: internals elispobj-evil-set-command-properties49589
+Ref: 2f49589
+Ref: internals elispobj-evil-get-command-properties49902
+Ref: 1a49902
+Ref: internals elispobj-evil-get-command-property50068
+Ref: 1b50068
+Ref: internals elispobj-evil-define-command50338
+Ref: e50338
+Ref: internals elispobj-evil-declare-repeat50542
+Ref: b50542
+Ref: internals elispobj-evil-declare-not-repeat50644
+Ref: a50644
+Ref: internals elispobj-evil-declare-change-repeat50753
+Ref: 850753
+Ref: Command properties-Footnote-150944
+Node: The GNU Free Documentation License51121
+Ref: license doc51254
+Ref: 6b51254
+Ref: license the-gnu-free-documentation-license51254
+Ref: 6c51254
+Node: Emacs lisp functions and variables75062
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End: