[emacs] Evil mode (and a shell alias)
This commit is contained in:
parent
2530e7bb2e
commit
70c9ea3165
38 changed files with 35123 additions and 0 deletions
BIN
emacs.d/evil/doc/evil.pdf
Normal file
BIN
emacs.d/evil/doc/evil.pdf
Normal file
Binary file not shown.
769
emacs.d/evil/doc/evil.texi
Normal file
769
emacs.d/evil/doc/evil.texi
Normal file
|
|
@ -0,0 +1,769 @@
|
|||
\input texinfo @c -*-texinfo-*-
|
||||
@setfilename evil.info
|
||||
@documentencoding ISO-8859-1
|
||||
@include version.texi
|
||||
@settitle Evil-mode manual
|
||||
@include macros.texi
|
||||
|
||||
@copying
|
||||
This manual is for Evil (version @value{VERSION} of @value{UPDATED}),
|
||||
an extensible vi layer for Emacs.
|
||||
|
||||
Copyright @copyright{} 2011 @authors{}.
|
||||
|
||||
@quotation
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled
|
||||
``GNU Free Documentation License''.
|
||||
@end quotation
|
||||
|
||||
The Evil team thanks everyone at gmane.emacs.vim-emulation for
|
||||
their feedback and contributions.
|
||||
@end copying
|
||||
|
||||
@dircategory Emacs
|
||||
@direntry
|
||||
* Evil: (evil). Extensible vi layer for Emacs.
|
||||
@end direntry
|
||||
|
||||
@titlepage
|
||||
@title Evil
|
||||
@subtitle Extensible vi layer for Emacs
|
||||
@author @authors{}
|
||||
@page
|
||||
@insertcopying
|
||||
@end titlepage
|
||||
|
||||
@contents
|
||||
|
||||
@ifnottex
|
||||
@node Top, Overview, (dir), (dir)
|
||||
@top Evil
|
||||
|
||||
This is the manual for Evil, an extensible vi layer for Emacs.
|
||||
@end ifnottex
|
||||
|
||||
@menu
|
||||
* Overview::
|
||||
* Settings::
|
||||
* Keymaps::
|
||||
* Hooks::
|
||||
* Macros::
|
||||
* Other internals::
|
||||
* GNU Free Documentation License::
|
||||
@end menu
|
||||
|
||||
@node Overview
|
||||
@chapter Overview
|
||||
|
||||
Evil is an extensible vi layer for Emacs. It emulates the main features
|
||||
of Vim,@footnote{Vim is the most popular version of @dfn{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: @uref{http://www.vim.org/}} turning Emacs into a modal editor.
|
||||
Like Emacs in general, Evil is extensible in Emacs Lisp.
|
||||
|
||||
@menu
|
||||
* Installation::
|
||||
* Modes and states::
|
||||
@end menu
|
||||
|
||||
@node Installation
|
||||
@section Installation
|
||||
|
||||
Evil lives in a Git repository. To download Evil, do:
|
||||
|
||||
@example
|
||||
git clone git://gitorious.org/evil/evil.git
|
||||
@end example
|
||||
|
||||
@noindent Move Evil to @code{~/.emacs.d/evil}. Then add the following
|
||||
lines to @code{~/.emacs}:
|
||||
|
||||
@lisp
|
||||
(add-to-list 'load-path "~/.emacs.d/evil")
|
||||
(require 'evil)
|
||||
(evil-mode 1)
|
||||
@end lisp
|
||||
|
||||
@noindent Evil requires @code{undo-tree.el} to provide linear undo
|
||||
and undo branches. It is available from
|
||||
EmacsWiki.@footnote{@uref{http://www.emacswiki.org/emacs/UndoTree}}
|
||||
(A copy of @code{undo-tree.el} is also included in the Git repository.)
|
||||
|
||||
@node Modes and states
|
||||
@section Modes and states
|
||||
|
||||
The next time Emacs is started, it will come up in @dfn{Normal state},
|
||||
denoted by @code{<N>} on the mode line. This is where the main vi
|
||||
bindings are defined. Note that you can always disable Normal state
|
||||
with @kbd{C-z}, which switches to an ``Emacs state'' (denoted by
|
||||
@code{<E>}) in which vi keys are completely disabled. Press @kbd{C-z}
|
||||
again to switch back to Normal state.
|
||||
|
||||
Evil uses the term @dfn{state} for what is called a ``mode'' in vi,
|
||||
since ``mode'' already has its own meaning in Emacs. Evil defines a
|
||||
number of states, such as Normal state (@code{<N>}), Insert state
|
||||
(@code{<I>}), Visual state (@code{<V>}), Replace state (@code{<R>}),
|
||||
Operator-Pending state (@code{<O>}), Motion state (@code{<M>}) and Emacs
|
||||
state (@code{<E>}). Each state has its own keymaps and customization
|
||||
variables.
|
||||
|
||||
Meanwhile, a @dfn{mode} in Emacs is a set of key bindings for editing a
|
||||
certain sort of text, like @code{emacs-lisp-mode} for Emacs Lisp. Modes
|
||||
may include custom bindings for Evil states.
|
||||
|
||||
@node Settings
|
||||
@chapter Settings
|
||||
|
||||
Evil's behavior can be adjusted by setting various variables.
|
||||
The current values may be inspected by doing
|
||||
@kbd{M-x customize-group RET evil RET}.
|
||||
|
||||
To change the value of a variable, add a @samp{setq} form to
|
||||
@code{~/.emacs}, preferably before Evil is loaded:@footnote{Strictly
|
||||
speaking, the order only matters if the variable affects the way Evil is
|
||||
loaded. This is the case with some of the @samp{evil-want-} variables.}
|
||||
|
||||
@lisp
|
||||
(setq evil-shift-width 8)
|
||||
;; @r{Load Evil}
|
||||
(require 'evil) @r{@dots{}}
|
||||
@end lisp
|
||||
|
||||
@noindent Note that if a variable is buffer-local, you must use
|
||||
@samp{setq-default} instead of @samp{setq} to change its global value.
|
||||
|
||||
@defvar evil-auto-indent
|
||||
Whether the current line is indented when entering Insert state.
|
||||
If @code{t} (the default), then the line is indented. If @code{nil},
|
||||
then the line is not indented. Buffer-local.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-shift-width
|
||||
The number of columns a line is shifted by the commands
|
||||
@kbd{>} and @kbd{<}.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-repeat-move-cursor
|
||||
If @code{t} (the default), then repeating a command with @kbd{.} may
|
||||
change the position of the cursor. If @code{nil}, then the original
|
||||
position is preserved.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-find-skip-newlines
|
||||
If @code{t}, then @kbd{f}, @kbd{F}, @kbd{t} and @kbd{T} may skip over
|
||||
newlines to find a character. If @code{nil} (the default), then they
|
||||
are restricted to the current line.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-move-cursor-back
|
||||
If @code{t} (the default), then the cursor moves backwards when exiting
|
||||
Insert state. If @code{nil}, then the cursor does not move.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-want-fine-undo
|
||||
If @code{t}, then a change-based action like @kbd{cw} may be undone
|
||||
in several steps. If @code{nil} (the default), then it is undone in
|
||||
one step.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-regexp-search
|
||||
If @code{t} (the default), then @kbd{/} and @kbd{?} use regular
|
||||
expressions for searching. If @code{nil}, they use plain text.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-search-wrap
|
||||
If @code{t} (the default), then @kbd{/} and @kbd{?} wrap the search
|
||||
around the buffer. If @code{nil}, then they stop at buffer boundaries.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-flash-delay
|
||||
The number of seconds to flash search matches when pressing @kbd{n}
|
||||
and @kbd{N}.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-want-C-i-jump
|
||||
If @code{t} (the default), then @kbd{C-i} jumps forwards in the jump
|
||||
list. If @code{nil}, then @kbd{C-i} inserts a tab.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-want-C-u-scroll
|
||||
If @code{t}, then @kbd{C-u} scrolls the buffer. If @code{nil} (the
|
||||
default), then @kbd{C-u} begins a numeric prefix argument.
|
||||
@end defvar
|
||||
|
||||
@menu
|
||||
* The cursor::
|
||||
* The initial state::
|
||||
@end menu
|
||||
|
||||
@node The cursor
|
||||
@section The cursor
|
||||
|
||||
A state may change the cursor's appearance. The cursor settings are
|
||||
stored in the variables below, which may contain a cursor type as per
|
||||
the @samp{cursor-type} variable, a color string as passed to the
|
||||
@samp{set-cursor-color} function, a zero-argument function for changing
|
||||
the cursor, or a list of the above. For example, the following changes
|
||||
the cursor in Replace state to a red box:
|
||||
|
||||
@lisp
|
||||
(setq evil-replace-state-cursor '("red" box))
|
||||
@end lisp
|
||||
|
||||
@noindent If the state does not specify a cursor,
|
||||
@samp{evil-default-cursor} is used.
|
||||
|
||||
@defvar evil-default-cursor
|
||||
The default cursor.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-normal-state-cursor
|
||||
The cursor for Normal state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-insert-state-cursor
|
||||
The cursor for Insert state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-visual-state-cursor
|
||||
The cursor for Visual state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-replace-state-cursor
|
||||
The cursor for Replace state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-operator-state-cursor
|
||||
The cursor for Operator-Pending state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-motion-state-cursor
|
||||
The cursor for Motion state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-emacs-state-cursor
|
||||
The cursor for Emacs state.
|
||||
@end defvar
|
||||
|
||||
@node The initial state
|
||||
@section The initial state
|
||||
|
||||
By default, a new buffer comes up in Normal state. This can be changed
|
||||
with the function @samp{evil-set-initial-state}.
|
||||
|
||||
@defun evil-set-initial-state mode state
|
||||
Set the initial state for a buffer in which @var{mode} is active to
|
||||
@var{state}. @var{mode} should be a major mode such as
|
||||
@code{text-mode}, although minor modes work as well.
|
||||
@end defun
|
||||
|
||||
@node Keymaps
|
||||
@chapter Keymaps
|
||||
|
||||
Evil's key bindings are stored in a number of keymaps. Each state has a
|
||||
@dfn{global keymap}, where the default key bindings for the state are
|
||||
stored. For example, the global keymap for Normal state is
|
||||
@samp{evil-normal-state-map}, and the key bindings in this map are seen
|
||||
in all buffers that are currently in Normal state.
|
||||
|
||||
Keymaps are modified with the Emacs function @samp{define-key}:
|
||||
|
||||
@lisp
|
||||
(define-key evil-normal-state-map "w" 'foo)
|
||||
@end lisp
|
||||
|
||||
@noindent This binds the key @kbd{w} to the command @samp{foo}
|
||||
in Normal state. The file @code{evil-maps.el} contains all the
|
||||
key bindings.
|
||||
|
||||
@defvar evil-normal-state-map
|
||||
The global keymap for Normal state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-insert-state-map
|
||||
The global keymap for Insert state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-visual-state-map
|
||||
The global keymap for Visual state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-replace-state-map
|
||||
The global keymap for Replace state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-operator-state-map
|
||||
The global keymap for Operator-Pending state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-motion-state-map
|
||||
The global keymap for Motion state.
|
||||
@end defvar
|
||||
|
||||
@noindent Each state also has a @dfn{buffer-local keymap},
|
||||
which is specific to the current buffer and has precedence over
|
||||
the global keymap. These maps may be changed from a mode hook.
|
||||
|
||||
@defvar evil-normal-state-local-map
|
||||
Buffer-local keymap for Normal state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-insert-state-local-map
|
||||
Buffer-local keymap for Insert state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-visual-state-local-map
|
||||
Buffer-local keymap for Visual state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-replace-state-local-map
|
||||
Buffer-local keymap for Replace state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-operator-state-local-map
|
||||
Buffer-local keymap for Operator-Pending state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-motion-state-local-map
|
||||
Buffer-local keymap for Motion state.
|
||||
@end defvar
|
||||
|
||||
@menu
|
||||
* @samp{evil-define-key}::
|
||||
@end menu
|
||||
|
||||
@node @samp{evil-define-key}
|
||||
@section @samp{evil-define-key}
|
||||
|
||||
Finally, Evil provides the function @samp{evil-define-key} for adding
|
||||
state bindings to a regular keymap.
|
||||
|
||||
@defun evil-define-key state keymap key def
|
||||
In @var{keymap}, create a binding from @var{key} to @var{def} in
|
||||
@var{state}. @var{state} is one of @samp{normal}, @samp{insert},
|
||||
@samp{visual}, @samp{replace}, @samp{operator} and @samp{motion}.
|
||||
The other parameters are like those of @samp{define-key}.
|
||||
@end defun
|
||||
|
||||
@noindent @samp{evil-define-key} can be used to augment existing
|
||||
modes with state bindings, as well as create packages for custom
|
||||
bindings. For example, the following will create a minor mode
|
||||
@code{foo-mode} with Normal state bindings for the keys @kbd{w}
|
||||
and @kbd{e}:
|
||||
|
||||
@lisp
|
||||
(define-minor-mode foo-mode
|
||||
"Foo mode."
|
||||
:keymap (make-sparse-keymap))
|
||||
|
||||
(evil-define-key 'normal foo-mode-map "w" 'bar)
|
||||
(evil-define-key 'normal foo-mode-map "e" 'baz)
|
||||
@end lisp
|
||||
|
||||
@noindent This minor mode can then be enabled in any buffers where
|
||||
the custom bindings are desired:
|
||||
|
||||
@lisp
|
||||
(add-hook 'text-mode-hook 'foo-mode) ; @r{enable alongside @code{text-mode}}
|
||||
@end lisp
|
||||
|
||||
@noindent If the minor mode is put into its own file @code{foo.el}
|
||||
with a @code{(provide 'foo)} statement, it becomes an Emacs package.
|
||||
|
||||
@node Hooks
|
||||
@chapter Hooks
|
||||
|
||||
A @dfn{hook} is a list of functions to execute. Hooks are modified with
|
||||
the Emacs function @samp{add-hook}. Evil provides entry and exit hooks
|
||||
for all of its states.
|
||||
|
||||
@defvar evil-normal-state-entry-hook
|
||||
Run when entering Normal state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-normal-state-exit-hook
|
||||
Run when exiting Normal state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-insert-state-entry-hook
|
||||
Run when entering Insert state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-insert-state-exit-hook
|
||||
Run when exiting Insert state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-visual-state-entry-hook
|
||||
Run when entering Visual state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-visual-state-exit-hook
|
||||
Run when exiting Visual state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-replace-state-entry-hook
|
||||
Run when entering Replace state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-replace-state-exit-hook
|
||||
Run when exiting Replace state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-operator-state-entry-hook
|
||||
Run when entering Operator-Pending state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-operator-state-exit-hook
|
||||
Run when exiting Operator-Pending state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-motion-state-entry-hook
|
||||
Run when entering Motion state.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-motion-state-exit-hook
|
||||
Run when exiting Motion state.
|
||||
@end defvar
|
||||
|
||||
@noindent When these hooks are run, the variables @samp{evil-next-state}
|
||||
and @samp{evil-previous-state} hold information about the states being
|
||||
switched to and from.
|
||||
|
||||
@defvar evil-next-state
|
||||
The state being switched to.
|
||||
@end defvar
|
||||
|
||||
@defvar evil-previous-state
|
||||
The state being switched from.
|
||||
@end defvar
|
||||
|
||||
@node Macros
|
||||
@chapter Macros
|
||||
|
||||
Evil is implemented in terms of reusable macros. Package writers can
|
||||
use these to define new commands.
|
||||
|
||||
@menu
|
||||
* Motions::
|
||||
* Operators::
|
||||
* Text objects::
|
||||
* Types::
|
||||
* States::
|
||||
@end menu
|
||||
|
||||
@node Motions
|
||||
@section Motions
|
||||
|
||||
A @dfn{motion} is a command which moves the cursor, such as @kbd{w} and
|
||||
@kbd{e}. Motions are defined with the macro @samp{evil-define-motion}.
|
||||
Motions not defined in this way should be declared with
|
||||
@samp{evil-declare-motion}.
|
||||
|
||||
@defun evil-declare-motion command
|
||||
Declare @var{command} to be a motion. This ensures that it works
|
||||
properly in Visual state.
|
||||
@end defun
|
||||
|
||||
@defmac evil-define-motion motion (count args@dots{}) doc keyword-args@dots{} body@dots{}
|
||||
Define a movement command @var{motion}. A motion can have any number of
|
||||
arguments, but the first argument, if any, has a predefined meaning as
|
||||
the @var{count}. It is a positive or negative number, or @code{nil}.
|
||||
The argument list is followed by the documentation string @var{doc},
|
||||
which is followed by optional keyword arguments:
|
||||
|
||||
@table @code
|
||||
@item :type @var{type}
|
||||
The @var{type} determines how the motion works after an operator. If
|
||||
@var{type} is @samp{inclusive}, then the ending position is included in
|
||||
the motion range. If @var{type} is @samp{line}, then the range is
|
||||
expanded to linewise positions. If @var{type} is @samp{block}, then the
|
||||
range is blockwise. The default is @samp{exclusive}, which means that
|
||||
the range is used as-is.
|
||||
|
||||
@item :jump @var{jump}
|
||||
If @var{jump} is @code{t}, then the previous position is stored in the
|
||||
jump list so it can be restored with @kbd{C-o}. The default is
|
||||
@code{nil}.
|
||||
@end table
|
||||
|
||||
The keyword arguments are followed by the @var{body}, which is where
|
||||
the motion's behavior is defined. For instance:
|
||||
|
||||
@lisp
|
||||
(evil-define-motion foo-forward (count)
|
||||
"Move to the right by COUNT characters."
|
||||
:type inclusive
|
||||
(forward-char (or count 1)))
|
||||
@end lisp
|
||||
|
||||
For more examples, you can view the source code for any command with
|
||||
@kbd{C-h k}. For instance, @samp{evil-goto-line} may be viewed by
|
||||
typing @kbd{C-h k G} and following the file link.
|
||||
@end defmac
|
||||
|
||||
@node Operators
|
||||
@section Operators
|
||||
|
||||
An @dfn{operator} is a command which acts on the text moved over by a
|
||||
motion, such as @kbd{c}, @kbd{d} and @kbd{y}. Operators are defined
|
||||
with the macro @samp{evil-define-operator}.
|
||||
|
||||
@defmac evil-define-operator operator (beg end type args@dots{}) doc keyword-args@dots{} body@dots{}
|
||||
Define an operator command @var{operator}. An operator must have at
|
||||
least two or three arguments, which have predefined meanings.
|
||||
@var{beg} is the beginning position, @var{end} is the ending position,
|
||||
and @var{type}, if given, is the type of the motion range. The argument
|
||||
list is followed by the documentation string @var{doc}, which is
|
||||
followed by optional keyword arguments:
|
||||
|
||||
@table @code
|
||||
@item :type @var{type}
|
||||
Make the input range be a certain @var{type}. For example, an operator
|
||||
which only works with whole lines may set @var{type} to @samp{line}.
|
||||
|
||||
@item :motion @var{motion}
|
||||
Use the motion @var{motion} instead of reading one from the keyboard.
|
||||
This does not affect the behavior in Visual state, where the selection
|
||||
boundaries are used instead.
|
||||
|
||||
@item :repeat @var{repeat}
|
||||
If @var{repeat} is @code{t} (the default), then @kbd{.} will repeat the
|
||||
operator. If @var{repeat} is @code{nil}, then the operator will not be
|
||||
repeated.
|
||||
|
||||
@item :move-point @var{move-point}
|
||||
If @var{move-point} is @code{t} (the default), then the cursor is
|
||||
positioned at the beginning of the range. If @var{move-point} is
|
||||
@code{nil}, then the original position is preserved.
|
||||
|
||||
@item :keep-visual @var{keep-visual}
|
||||
If @var{keep-visual} is @code{t}, then the selection is not disabled
|
||||
when the operator is run in Visual state; it is up to the operator to do
|
||||
this. The default is @code{nil}, which means that Visual state is
|
||||
exited automatically.
|
||||
@end table
|
||||
|
||||
The keyword arguments are followed by the @var{body}, which is where the
|
||||
operator's actions on @var{beg} and @var{end} are defined. For example,
|
||||
@samp{evil-rot13}, which is bound to @kbd{g?} and performs ROT13
|
||||
encryption on the text, may be defined as:
|
||||
|
||||
@lisp
|
||||
(evil-define-operator evil-rot13 (beg end)
|
||||
"ROT13 encrypt text."
|
||||
(rot13-region beg end))
|
||||
@end lisp
|
||||
|
||||
Pressing @kbd{g?w} will encrypt a word by calling @samp{rot13-region}
|
||||
on the text moved over by the @kbd{w} motion.
|
||||
@end defmac
|
||||
|
||||
@node Text objects
|
||||
@section Text objects
|
||||
|
||||
A @dfn{text object} is a special kind of motion which sets a beginning
|
||||
position as well as an ending position, such as @kbd{iw} and @kbd{a(}.
|
||||
In Visual state, text objects alter both ends of the selection. Text
|
||||
objects are defined with the macro @samp{evil-define-text-object}.
|
||||
|
||||
@defmac evil-define-text-object object (count args@dots{}) doc keyword-args@dots{} body@dots{}
|
||||
Define a text object @var{object}. The first argument has a predefined
|
||||
meaning as the @var{count}: it is a positive or negative number. The
|
||||
argument list is followed by the documentation string @var{doc}, which
|
||||
is followed by optional keyword arguments:
|
||||
|
||||
@table @code
|
||||
@item :type @var{type}
|
||||
Use the type @var{type} after an operator. In Visual state, this is the
|
||||
type of the selection.
|
||||
|
||||
@item :extend-selection @var{extend-selection}
|
||||
If @var{extend-selection} is @code{t} (the default), then the text
|
||||
object always enlarges the current selection. If @code{nil}, then the
|
||||
object replaces the selection.
|
||||
@end table
|
||||
|
||||
The keyword arguments are followed by the @var{body}, which should
|
||||
evaluate to a list @code{(@var{beg} @var{end})} of two positions in the
|
||||
buffer. For example, a text object which selects three characters
|
||||
following the current position could be defined as:
|
||||
|
||||
@lisp
|
||||
(evil-define-text-object foo (count)
|
||||
"Select three characters."
|
||||
(list (point) (+ (point) 3)))
|
||||
@end lisp
|
||||
@end defmac
|
||||
|
||||
@noindent Evil provides several functions which return a list of
|
||||
positions, for use in the definition of a text object. These functions
|
||||
follow the rule that a positive @var{count} selects text after the
|
||||
current position, while a negative @var{count} selects text before it.
|
||||
|
||||
@defun evil-inner-object-range count forward backward
|
||||
Return a text range @code{(@var{beg} @var{end})} of @var{count}
|
||||
``inner'' text objects (e.g., @kbd{iw}, @kbd{is}). @var{forward} is a
|
||||
function which moves to the end of an object, and @var{backward} is a
|
||||
function which moves to the beginning.
|
||||
@end defun
|
||||
|
||||
@defun evil-an-object-range count forward backward
|
||||
Return a text range @code{(@var{beg} @var{end})} of @var{count} text
|
||||
objects with whitespace (e.g., @kbd{aw}, @kbd{as}). @var{forward} is a
|
||||
function which moves to the end of an object, and @var{backward} is a
|
||||
function which moves to the beginning.
|
||||
@end defun
|
||||
|
||||
@defun evil-paren-range count open close &optional exclusive
|
||||
Return a text range @code{(@var{beg} @var{end})} of @var{count}
|
||||
delimited blocks (e.g., @kbd{i(}, @kbd{a(}). @var{open} and @var{close}
|
||||
are characters. If @var{exclusive} is non-nil, then the delimiters are
|
||||
excluded from the range. This function uses Emacs' syntax table and is
|
||||
only applicable for single-character delimiters; use
|
||||
@samp{evil-regexp-range} to match multiple characters.
|
||||
@end defun
|
||||
|
||||
@defun evil-regexp-range count open close &optional exclusive
|
||||
Return a text range @code{(@var{beg} @var{end})} of @var{count}
|
||||
delimited blocks (e.g., @kbd{it}, @kbd{at}). @var{open} and @var{close}
|
||||
are regular expressions. If @var{exclusive} is non-nil, then the
|
||||
delimiters are excluded from the range.
|
||||
@end defun
|
||||
|
||||
@node Types
|
||||
@section Types
|
||||
|
||||
A @dfn{type} is a transformation on a pair of buffer positions. Evil
|
||||
defines the types @samp{exclusive}, @samp{inclusive}, @samp{line} and
|
||||
@samp{block}, which are used for motion ranges and Visual selection.
|
||||
Types are defined with the macro @samp{evil-define-type}.
|
||||
|
||||
@defmac evil-define-type type doc keyword-args@dots{}
|
||||
Define a type @var{type}, described by the documentation string
|
||||
@var{doc}. Then follows keyword arguments:
|
||||
|
||||
@table @code
|
||||
@item :expand @var{expand}
|
||||
A function which takes two buffer positions and returns a list
|
||||
@code{(@var{beg} @var{end})} of expanded positions.
|
||||
|
||||
@item :contract @var{contract}
|
||||
A function which takes two expanded buffer positions and returns a list
|
||||
@code{(@var{beg} @var{end})} of unexpanded positions. Optional.
|
||||
|
||||
@item :normalize @var{normalize}
|
||||
A function which takes two unexpanded buffer positions and returns a
|
||||
list @code{(@var{beg} @var{end})} of adjusted positions. Optional.
|
||||
|
||||
@item :injective @var{injective}
|
||||
If @code{t} (the default), then expansion is one-to-one -- i.e.,
|
||||
@var{expand} followed by @var{contract} always returns the original
|
||||
positions. If @code{nil}, then several positions may expand to the same
|
||||
(for example, the @samp{line} type is one-to-many as it expands to the
|
||||
containing lines).
|
||||
@end table
|
||||
|
||||
Further keywords and functions may be specified. These are understood
|
||||
to be transformations on buffer positions, like @var{expand} and
|
||||
@var{contract}.
|
||||
@end defmac
|
||||
|
||||
@node States
|
||||
@section States
|
||||
|
||||
States are defined with the macro @samp{evil-define-state}. The macro
|
||||
defines the necessary hooks, keymaps and variables for a state, as well
|
||||
as a toggle function @samp{evil-@var{state}-state} for entering the
|
||||
state, and a predicate function @samp{evil-@var{state}-state-p} which
|
||||
returns @code{t} when the state is active, and @code{nil} otherwise.
|
||||
|
||||
@defmac evil-define-state state doc keyword-args@dots{} body@dots{}
|
||||
Define an Evil state @var{state}, described by the documentation string
|
||||
@var{doc}. Then follows optional keyword arguments:
|
||||
|
||||
@table @code
|
||||
@item :tag @var{tag}
|
||||
Mode line indicitor, e.g., @code{"<T>"}.
|
||||
@item :message @var{message}
|
||||
String shown in the echo area.
|
||||
@item :cursor @var{cursor}
|
||||
Cursor specification.
|
||||
@item :enable @var{enable}
|
||||
List of other modes and states to enable. A state may enable another
|
||||
state's keymaps in addition to its own.
|
||||
@end table
|
||||
|
||||
This is followed the @var{body}, which is executed whenever the state is
|
||||
enabled or disabled. The state's predicate function may be used to
|
||||
distinguish between the two.
|
||||
@end defmac
|
||||
|
||||
@node Other internals
|
||||
@chapter Other internals
|
||||
|
||||
@menu
|
||||
* Command properties::
|
||||
@end menu
|
||||
|
||||
@node Command properties
|
||||
@section Command properties
|
||||
|
||||
Evil defines @dfn{command properties} to store information about
|
||||
commands, such as whether they should be repeated. A command property
|
||||
is a @code{@var{:keyword}} with an associated value, e.g., @code{:repeat
|
||||
nil}.
|
||||
|
||||
@defun evil-add-command-properties command &rest properties
|
||||
Add @var{properties} to @var{command}. The properties should be
|
||||
specified as a list of keywords and values:
|
||||
|
||||
@lisp
|
||||
(evil-add-command-properties 'my-command :repeat t)
|
||||
@end lisp
|
||||
@end defun
|
||||
|
||||
@defun evil-set-command-properties command &rest properties
|
||||
Like @samp{evil-add-command-properties}, but resets all
|
||||
previous properties.
|
||||
@end defun
|
||||
|
||||
@defun evil-get-command-property command property
|
||||
Return the value of a command property.
|
||||
@end defun
|
||||
|
||||
@defmac evil-define-command command (args@dots{}) doc keyword-args@dots{} body@dots{}
|
||||
Define a command with command properties @var{keyword-args}.
|
||||
@end defmac
|
||||
|
||||
@noindent For setting repeat properties, Evil provides the
|
||||
following functions:
|
||||
|
||||
@defun evil-declare-repeat command
|
||||
Declare @var{command} to be repeatable.
|
||||
@end defun
|
||||
|
||||
@defun evil-declare-not-repeat command
|
||||
Declare @var{command} to be nonrepeatable.
|
||||
@end defun
|
||||
|
||||
@defun evil-declare-change-repeat command
|
||||
Declare @var{command} to be repeatable by buffer changes rather than
|
||||
keystrokes.
|
||||
@end defun
|
||||
|
||||
@node GNU Free Documentation License
|
||||
@appendix GNU Free Documentation License
|
||||
@include fdl-1.3.texi
|
||||
|
||||
@bye
|
||||
|
||||
@c Local Variables:
|
||||
@c mode: texinfo
|
||||
@c TeX-master: t
|
||||
@c sentence-end-double-space: t
|
||||
@c End:
|
||||
506
emacs.d/evil/doc/fdl-1.3.texi
Normal file
506
emacs.d/evil/doc/fdl-1.3.texi
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
@c The GNU Free Documentation License.
|
||||
@center Version 1.3, 3 November 2008
|
||||
|
||||
@c This file is intended to be included within another document,
|
||||
@c hence no sectioning command or @node.
|
||||
|
||||
@display
|
||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
@uref{http://fsf.org/}
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@end display
|
||||
|
||||
@enumerate 0
|
||||
@item
|
||||
PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document @dfn{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.
|
||||
|
||||
@item
|
||||
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, La@TeX{} 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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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:
|
||||
|
||||
@enumerate A
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
|
||||
@item
|
||||
Preserve all the copyright notices of the Document.
|
||||
|
||||
@item
|
||||
Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
|
||||
@item
|
||||
Include an unaltered copy of this License.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
Delete any section Entitled ``Endorsements''. Such a section
|
||||
may not be included in the Modified Version.
|
||||
|
||||
@item
|
||||
Do not retitle any existing section to be Entitled ``Endorsements'' or
|
||||
to conflict in title with any Invariant Section.
|
||||
|
||||
@item
|
||||
Preserve any Warranty Disclaimers.
|
||||
@end enumerate
|
||||
|
||||
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.
|
||||
|
||||
@item
|
||||
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.''
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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
|
||||
@uref{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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@end enumerate
|
||||
|
||||
@page
|
||||
@heading ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
Copyright (C) @var{year} @var{your name}.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled ``GNU
|
||||
Free Documentation License''.
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the ``with@dots{}Texts.'' line with this:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
with the Invariant Sections being @var{list their titles}, with
|
||||
the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
|
||||
being @var{list}.
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
|
||||
@c Local Variables:
|
||||
@c ispell-local-pdict: "ispell-dict"
|
||||
@c End:
|
||||
|
||||
BIN
emacs.d/evil/doc/front.png
Normal file
BIN
emacs.d/evil/doc/front.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
BIN
emacs.d/evil/doc/logo.png
Normal file
BIN
emacs.d/evil/doc/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
110
emacs.d/evil/doc/logo.svg
Normal file
110
emacs.d/evil/doc/logo.svg
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="127.82534"
|
||||
height="62.426407"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="evil.svg"
|
||||
inkscape:export-filename="/home/vegard/evil.png"
|
||||
inkscape:export-xdpi="150"
|
||||
inkscape:export-ydpi="150">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.2069466"
|
||||
inkscape:cx="173.13654"
|
||||
inkscape:cy="12.652914"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="998"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-left="10"
|
||||
fit-margin-top="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-165.00893,-164.53963)">
|
||||
<rect
|
||||
style="fill:#000000"
|
||||
id="rect2991"
|
||||
width="30.809652"
|
||||
height="42.426407"
|
||||
x="175.00893"
|
||||
y="174.53963" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
|
||||
x="178.15302"
|
||||
y="209.50504"
|
||||
id="text2985"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2987"
|
||||
x="178.15302"
|
||||
y="209.50504"
|
||||
style="font-weight:bold;letter-spacing:5.28999996px;-inkscape-font-specification:Ubuntu Bold"><tspan
|
||||
style="letter-spacing:6.60000228999999994px;fill:#ffffff"
|
||||
id="tspan2989">E</tspan><tspan
|
||||
style="fill:#333333"
|
||||
id="tspan2995">VIL</tspan></tspan></text>
|
||||
<g
|
||||
style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
|
||||
id="text2997"
|
||||
transform="matrix(0.89694705,0.44213798,-0.44213798,0.89694705,260.2961,-122.4502)">
|
||||
<path
|
||||
d="m 144.8919,272.13985 c 0.57684,-0.24621 1.4908,-0.78829 1.94103,-1.23149 0.46429,-0.46428 0.81251,-0.98134 1.04466,-1.55116 0.23214,-0.5698 0.33721,-0.99165 0.33722,-1.62479 0.0155,-0.43449 -0.28674,-1.22826 -0.57298,-1.8313 -0.26496,-0.55821 -0.52007,-1.02571 -0.52007,-1.02571 l -1.99277,2.29588 0.22983,-5.91917 5.5976,0.45081 -2.34283,1.96492 c 0,0 0.49752,1.04212 0.73633,1.68916 0.23881,0.64704 0.58739,1.34614 0.66973,2.19566 0.0366,0.62546 -0.16181,1.70241 -0.4854,2.4903 -0.33767,0.79493 -0.81956,1.50544 -1.44564,2.13152 -0.59093,0.58389 -1.53465,1.17717 -2.35067,1.54297"
|
||||
style="fill:#333333"
|
||||
id="path3002"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccscsccccczcccc" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="309.28571"
|
||||
y="111.6479"
|
||||
id="text3011"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3013"
|
||||
x="309.28571"
|
||||
y="111.6479" /></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
13
emacs.d/evil/doc/macros.texi
Normal file
13
emacs.d/evil/doc/macros.texi
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the Evil manual.
|
||||
@c Copyright (C) 2011 Frank Fischer and Vegard Øye.
|
||||
@c See the file evil.texi for copying conditions.
|
||||
|
||||
@ifclear macros
|
||||
@set macros
|
||||
|
||||
@macro authors {}
|
||||
Frank Fischer and Vegard Øye
|
||||
@end macro
|
||||
|
||||
@end ifclear
|
||||
7
emacs.d/evil/doc/version.texi
Normal file
7
emacs.d/evil/doc/version.texi
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the Evil manual.
|
||||
@c Copyright (C) 2011 Frank Fischer and Vegard Øye.
|
||||
@c See the file evil.texi for copying conditions.
|
||||
|
||||
@set VERSION 0.1
|
||||
@set UPDATED 2011-07-30
|
||||
Loading…
Add table
Add a link
Reference in a new issue