New Commands
============
These commands have no Vi analogs.
`C-x, C-c'
These two keys invoke many important Emacs functions. For
example, if you hit `C-x' followed by `2', then the current window
will be split into 2. Except for novice users, `C-c' is also set
to execute an Emacs command from the current major mode. <ESC>
will do the same, if you configure <ESC> as Meta by setting
`viper-no-multiple-ESC' to nil in `.viper'. Note:Customization. `C-\' in Insert, Replace, or Vi states will make
Emacs think `Meta' has been hit.
`\'
Escape to Emacs to execute a single Emacs command. For instance,
`\ <ESC>' will act like a Meta key.
`Q'
`Q' is for query replace. By default, each string to be replaced
is treated as a regular expression. You can use `(setq
viper-re-query-replace nil)' in your `.emacs' file to turn this
off. (For normal searches, `:se nomagic' will work. Note that
`:se nomagic' turns Regexps off completely, unlike Vi).
`v'
`V'
`C-v'
These keys are used to visit files. `v' will switch to a buffer
visiting file whose name can be entered in the Minibuffer. `V' is
similar, but will use a window different from the current window.
`C-v' is like `V', except that a new frame (X window) will be used
instead of a new Emacs window.
`#'
If followed by a certain character CH, it becomes an operator whose
argument is the region determined by the motion command that
follows (indicated as <move>). Currently, CH can be one of `c',
`C', `g', `q', and `s'. For instance, `#qr' will prompt you for a
string and then prepend this string to each line in the buffer.
`# c'
Change upper-case characters in the region to lower-case
(`downcase-region'). Emacs command `M-l' does the same for words.
`# C'
Change lower-case characters in the region to upper-case. For
instance, `# C 3 w' will capitalize 3 words from the current point
(`upcase-region'). Emacs command `M-u' does the same for words.
`# g'
Execute last keyboard macro for each line in the region
(`viper-global-execute').
`# q'
Insert specified string at the beginning of each line in the region
(`viper-quote-region'). The default string is composed of the
comment character(s) appropriate for the current major mode.
`# s'
Check spelling of words in the region (`spell-region'). The
function used for spelling is determined from the variable
`viper-spell-function'.
`*'
Call last keyboard macro.
`m .'
Set mark at point and push old mark off the ring
`m<'
`m>'
Set mark at beginning and end of buffer, respectively.
`m,'
Jump to mark and pop mark off the ring. Note:Mark,
for more info.
`] register'
View contents of register
`[ textmarker'
View filename and position of textmarker
`@#'
`@register'
`@!'
Begin/end keyboard macro. @register has a different meaning when
used after a `@#'. Note:Macros and Registers, for details
`[]'
Go to end of heading.
`g <_movement command_>'
Search buffer for text delimited by movement command. The
canonical example is `gw' to search for the word under the cursor.
Note:Improved Search, for details.
`C-g and C-]'
Quit and Abort Recursive edit. These may be necessary on occasion.
Note:Vi State, for a reason.
`C-c C-g'
Hitting `C-c' followed by `C-g' will display the information on the
current buffer. This is the same as hitting `C-g' in Vi, but, as
explained above, `C-g' is needed for other purposes in Emacs.
`C-c /'
Without a prefix argument, this command toggles
case-sensitive/case-insensitive search modes and plain
vanilla/regular expression search. With the prefix argument 1,
i.e., `1 C-c /', this toggles case-sensitivity; with the prefix
argument 2, toggles plain vanilla search and search using regular
expressions. Note:Viper Specials, for alternative ways to
invoke this function.
`M-p and M-n'
In the Minibuffer, these commands navigate through the minibuffer
histories, such as the history of search strings, Ex commands, etc.
`C-c M-p and C-c M-n'
In Insert or Replace state, these commands let the user peruse
the history of insertion strings used in previous insert or replace
commands. Try to hit `C-c M-p' or `C-c M-n' repeatedly and see
what happens. Note:Viper Specials, for more.
In Vi state, these commands let the user peruse the history of
Vi-style destructive commands, such as `dw', `J', `a', etc. By
repeatedly typing `C-c M-p' or `C-c M-n' you will cycle Viper
through the recent history of Vi commands, displaying the commands
one by one. Once an appropriate command is found, it can be
executed by typing ``.''.
Since typing `C-c M-p' is tedious, it is more convenient to bind an
appropriate function to a function key on the keyboard and use
that key. Note:Viper Specials, for details.
`Ex commands'
The commands `:args', `:next', `:pre' behave differently. `:pwd'
exists to get current directory. The commands `:b' and `:B'
switch buffers around. Note:File and Buffer Handling, for
details. There are also the new commands `:RelatedFile' and
`PreviousRelatedFile' (which abbreviate to `R' and `P',
respectively. Note:Viper Specials, for details.
Apart from the new commands, many old commands have been enhanced.
Most notably, Vi style macros are much more powerful in Viper than in
Vi. Note:Vi Macros, for details.