mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-29 02:02:28 +01:00
457 lines
17 KiB
Plaintext
457 lines
17 KiB
Plaintext
heading::Key{nbsp}mappings,{nbsp}abbreviations,{nbsp}and{nbsp}user-defined{nbsp}commands[]
|
|
|
|
section::Key{nbsp}mapping[key-mapping,mapping,map,macro]
|
|
|
|
The key mapping commands can be used to either redefine the standard key
|
|
bindings or define new ones. A mapping consists of a key, or [j]key-sequence[j],
|
|
which is translated to a string of characters. Example:
|
|
|
|
\{nbsp}[c]:map <F2> :echo new Date().toDateString()<CR>[c]
|
|
|
|
will echo the current date to the command line when [m]<F2>[m] is pressed.
|
|
|
|
|:map-modes| +
|
|
Keys can be mapped in four distinct modes:
|
|
|
|
* Normal mode: When browsing normally --
|
|
* Visual mode: When selecting text with the cursor keys --
|
|
* Insert mode: When interacting with text fields on a website --
|
|
* Command-line mode: When typing into the Vimperator command line --
|
|
|
|
Warning: Mappings are NOT saved between sessions, make sure you put them in your
|
|
vimperatorrc file!
|
|
|
|
subsection::Map{nbsp}commands[:map-commands]
|
|
|
|
|:map|
|
|
||:map {lhs} {rhs}|| +
|
|
|:nm| |:nmap|
|
|
||:nm[ap] {lhs} {rhs}|| +
|
|
|:vm| |:vmap|
|
|
||:vm[ap] {lhs} {rhs}|| +
|
|
|:im| |:imap|
|
|
||:im[ap] {lhs} {rhs}|| +
|
|
|:cm| |:cmap|
|
|
||:cm[ap] {lhs} {rhs}|| +
|
|
________________________________________________________________________________
|
|
Map the [j]key-sequence[j] {lhs} to {rhs} for the applicable mode(s). The {rhs} is
|
|
remapped, allowing for nested and recursive mappings.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:no| |:noremap|
|
|
||:no[remap] {lhs} {rhs}|| +
|
|
|:nn| |:nnoremap|
|
|
||:nn[oremap] {lhs} {rhs}|| +
|
|
|:vn| |:vnoremap|
|
|
||:vn[oremap] {lhs} {rhs}|| +
|
|
|:ino| |:inoremap|
|
|
||:ino[remap] {lhs} {rhs}|| +
|
|
|:cno| |:cnoremap|
|
|
||:cno[remap] {lhs} {rhs}|| +
|
|
________________________________________________________________________________
|
|
Map the [j]key-sequence[j] {lhs} to {rhs} for the applicable mode(s). No remapping of
|
|
the {rhs} is performed.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:unm| |:unmap|
|
|
||:map {lhs} {rhs}|| +
|
|
|:nun| |:nunmap|
|
|
||:nun[map] {lhs} {rhs}|| +
|
|
|:vun| |:vunmap|
|
|
||:vun[map] {lhs} {rhs}|| +
|
|
|:iu| |:iunmap|
|
|
||:iu[nmap] {lhs} {rhs}|| +
|
|
|:cu| |:cunmap|
|
|
||:cu[nmap] {lhs} {rhs}|| +
|
|
________________________________________________________________________________
|
|
Remove the mapping of {lhs} for the applicable mode(s).
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:mapc| |:mapclear|
|
|
||:mapc[lear]|| +
|
|
|:nmapc| |:nmapclear|
|
|
||:nmapc[lear]|| +
|
|
|:vmapc| |:vmapclear|
|
|
||:vmapc[lear]|| +
|
|
|:imapc| |:imapclear|
|
|
||:imapc[lear]|| +
|
|
|:cmapc| |:cmapclear|
|
|
||:cmapc[lear]|| +
|
|
________________________________________________________________________________
|
|
Remove all mappings for the applicable mode(s). All user-defined mappings are
|
|
cleared.
|
|
________________________________________________________________________________
|
|
|
|
||:map|| +
|
|
||:nm[ap]|| +
|
|
||:vm[ap]|| +
|
|
||:im[ap]|| +
|
|
||:cm[ap]|| +
|
|
________________________________________________________________________________
|
|
List all mappings for the applicable mode(s).
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:map_l|
|
|
||:map {lhs}|| +
|
|
|:nmap_l|
|
|
||:nm[ap] {lhs}|| +
|
|
|:vmap_l|
|
|
||:vm[ap] {lhs}|| +
|
|
|:imap_l|
|
|
||:im[ap] {lhs}|| +
|
|
|:cmap_l|
|
|
||:cm[ap] {lhs}|| +
|
|
________________________________________________________________________________
|
|
List all mappings starting with {lhs} for the applicable mode(s).
|
|
________________________________________________________________________________
|
|
|
|
|
|
subsection::Special{nbsp}arguments{nbsp}[:map-arguments]
|
|
|
|
|:map-<silent>| +
|
|
|
|
When the first argument to one of the mapping commands is [c]<silent>[c], {rhs}
|
|
is not echoed to the command line, nor, for that matter, anything else until
|
|
the command has completed.
|
|
|
|
|
|
Below is an overview of which modes each map command applies to:
|
|
|
|
// TODO: table format
|
|
|
|
:map :noremap :unmap :mapclear - both Normal and Visual modes
|
|
:nmap :nnoremap :nunmap :nmapclear - Normal mode
|
|
:vmap :vnoremap :vunmap :vmapclear - Visual mode
|
|
:imap :inoremap :iunmap :imapclear - Insert mode
|
|
:cmap :cnoremap :cunmap :cmapclear - Command-line mode
|
|
|
|
subsection::Key{nbsp}sequences[:<>,key-sequence]
|
|
|
|
For most keys, the key-sequence is the same as the character you see when you
|
|
type that key, however there are some exceptions which allow for a much larger
|
|
number of keys to be used in mappings.
|
|
|
|
* *<lt>*, *\<*, *<Space>*, *$$\ $$* allow a literal *<* or space character.
|
|
* *\'*, *\"* and *\\* must be used to avoid escaping issues when mapping a quote or backslash.
|
|
* *<Left>* *<Right>* *<Up>* *<Down>* *<PageUp>* *<PageDown>* *<Esc>* *<CR>* (for carriage return/enter)
|
|
* *<CapsLock>* *<NumLock>* *<Ins>* *<Del>* *<Tab>* *<BS>* (for a backspace)
|
|
* *<F1>* through *<F12>* work as expected
|
|
|
|
Most keyboards have some modifiers such as the control, alt or meta keys. In
|
|
order to create a mapping that uses these keys the correct prefix must be used
|
|
within the angle brackets.
|
|
|
|
* *<C-x>*: The control or ctrl key.
|
|
* *<A-x>*: The alt key.
|
|
* *<M-x>*: The meta key, windows key, or command key
|
|
* *<S-x>*: The shift key.
|
|
|
|
These prefixes can be combined however you see fit, though you should note that
|
|
within angle brackets all alphabetic characters are read as lowercase. In order
|
|
to force them to be uppercase, you must specify the S- prefix as well.
|
|
Additionally, you should never use the S- prefix with a number or piece of
|
|
punctuation, even if you require a shift to type that character; doing so will
|
|
give you a mapping that cannot be typed. With non-character keys, tab and
|
|
space, the S- modifier works just like C- A- and M-. Some examples may clarify
|
|
the situation:
|
|
|
|
* *xc*: type x, and then type c
|
|
* *<C-x>c*: hold control and type x, then type c without control
|
|
* *<C-2>*: type 2 while holding control
|
|
* *<C-@>*: type @ while holding control
|
|
* *<S-Space>*: press space while holding shift
|
|
* *<C-A-j>*: press j while holding control and alt
|
|
* *<C-A-J>*: exactly the same as above
|
|
* *<C-A-S-j>*: press J while holding control and alt
|
|
|
|
subsection::Special{nbsp}characters[:map-special-chars]
|
|
|
|
|<Nop>| +
|
|
||<Nop>||
|
|
________________________________________________________________________________
|
|
Do nothing. This command is useful for disabling a specific mapping. [c]:map
|
|
<C-n> <Nop>[c] will prevent [m]<C-n>[m] from doing anything.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|<CR>| |map_return| +
|
|
||<CR>||
|
|
________________________________________________________________________________
|
|
Expand to a line terminator in a key mapping. An Ex command in the {rhs} of a
|
|
mapping requires a line terminator after it so that it is executed when the
|
|
mapping is expanded. [m]<CR>[m] should be used for this purpose.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|<Leader>| |mapleader| +
|
|
||<Leader>||
|
|
________________________________________________________________________________
|
|
Expands to the value of the "mapleader" variable in key mapping. If
|
|
"mapleader" is unset or empty then "\" is used. Example: +
|
|
\{nbsp}[c]:map <Leader>h :echo "Hello"<CR>[c] +
|
|
works like +
|
|
\{nbsp}[c]:map \h :echo "Hello"<CR>[c] +
|
|
but after +
|
|
\{nbsp}[c]let mapleader = ","[c] +
|
|
it works like +
|
|
\{nbsp}[c]:map ,h :echo "Hello"<CR>[c]
|
|
________________________________________________________________________________
|
|
|
|
section::Abbreviations[abbreviations]
|
|
|
|
Vimperator can automatically replace words identified as abbreviations,
|
|
which may be used to save typing or to correct commonly misspelled
|
|
words. An abbreviation can be one of three types that are defined by the
|
|
types of constituent characters. Whitespace and quotes are non-keyword
|
|
types, and all other characters are keyword types.
|
|
|
|
1. A "full-id" abbreviation consists entirely of keyword characters
|
|
(e.g., "teh", "msoft").
|
|
|
|
2. An "end-id" abbreviation ends in keyword character but otherwise
|
|
contains all non-keyword characters (e.g., "'i").
|
|
|
|
3. A "non-id" abbreviation ends in a non-keyword character but otherwise
|
|
contains any non-whitespace character (e.g., "def'").
|
|
|
|
Strings that cannot be abbreviations include "a'b" and "a b".
|
|
|
|
An abbreviation is recognized when a space, quote character, or
|
|
[m]<C-]>[m] is typed after the abbreviation. There are no default
|
|
abbreviations, and abbreviations are never recursive.
|
|
|
|
|:ab| |:abbreviate|
|
|
||:ab[breviate] {lhs} {rhs}|| +
|
|
||:ab[breviate] {lhs}|| +
|
|
||:ab[breviate]||
|
|
________________________________________________________________________________
|
|
Abbreviate a key sequence. Abbreviate {lhs} to {rhs}. If only {lhs} is given,
|
|
list all abbreviations that start with {lhs}. If no arguments are given,
|
|
list all abbreviations.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:ca| |:cabbrev|
|
|
||:ca[bbrev] {lhs} {rhs}|| +
|
|
||:ca[bbrev] {lhs}|| +
|
|
||:ca[bbrev]||
|
|
________________________________________________________________________________
|
|
Abbreviate a key sequence for Command-line mode. Same as [c]:ab[breviate][c],
|
|
but for Command-line mode only.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:ia| |:iabbrev|
|
|
||:ia[bbrev] {lhs} {rhs}|| +
|
|
||:ia[bbrev] {lhs}|| +
|
|
||:ia[bbrev]||
|
|
________________________________________________________________________________
|
|
Abbreviate a key sequence for Insert mode. Same as [c]:ab[breviate][c] but
|
|
for Insert mode only.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:una| |:unabbreviate|
|
|
||:una[bbreviate] {lhs}|| +
|
|
________________________________________________________________________________
|
|
Remove an abbreviation.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:cuna| |:cunabbrev|
|
|
||:cuna[bbrev] {lhs}|| +
|
|
________________________________________________________________________________
|
|
Remove an abbreviation for Command-line mode. Same as [c]:una[bbreviate][c],
|
|
but for Command-line mode only.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:iuna| |:iunabbrev|
|
|
||:iuna[bbrev] {lhs}|| +
|
|
________________________________________________________________________________
|
|
Remove an abbreviation for Insert mode. Same as [c]:una[bbreviate][c] but for
|
|
Insert mode only.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:abc| |:abclear| +
|
|
||:abc[lear]||
|
|
________________________________________________________________________________
|
|
Remove all abbreviations.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:cabc| |:cabclear| +
|
|
||:cabc[lear]||
|
|
________________________________________________________________________________
|
|
Remove all abbreviations for Command-line mode.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:iabc| |:iabclear| +
|
|
||:iabc[lear]||
|
|
________________________________________________________________________________
|
|
Remove all abbreviations for Insert mode.
|
|
________________________________________________________________________________
|
|
|
|
section::User-defined{nbsp}commands[user-commands]
|
|
|
|
|:com| |:command|
|
|
||:com[mand]|| +
|
|
________________________________________________________________________________
|
|
List all user-defined commands.
|
|
________________________________________________________________________________
|
|
|
|
||:com[mand] {cmd}|| +
|
|
________________________________________________________________________________
|
|
List all user-defined commands that start with {cmd}.
|
|
________________________________________________________________________________
|
|
|
|
|
|
||:com[mand][!] [{attr}...] {cmd} {rep}|| +
|
|
________________________________________________________________________________
|
|
Define a new user command. The name of the command is {cmd} and its replacement
|
|
text is {rep}. The command's attributes are {attr}. If a command with this name
|
|
already exists an error is reported unless [!] is specified, in which case the
|
|
command is redefined. Unlike Vim, the command may start with a lowercase
|
|
letter.
|
|
|
|
The command's behavior can be specified by providing attributes when the
|
|
command is defined.
|
|
|
|
|E175| |E176| |:command-nargs| +
|
|
Argument handling
|
|
|
|
By default user commands accept no arguments. This can be changed by specifying
|
|
the -nargs attribute.
|
|
|
|
The valid values are:
|
|
|
|
[frame="topbot",grid="none",cols="1,4"]
|
|
|===============================================================================
|
|
|*-nargs=0*|No arguments are allowed (default)
|
|
|*-nargs=1*|One argument is allowed
|
|
|*-nargs=**|Zero or more arguments are allowed
|
|
|*-nargs=?*|Zero or one argument is allowed
|
|
|*-nargs=+*|One or more arguments are allowed
|
|
|===============================================================================
|
|
|
|
|E180| |E181| |:command-complete| +
|
|
Argument completion
|
|
|
|
Completion for arguments to user defined commands is not available by default.
|
|
Completion can be enabled by specifying one of the following arguments to the
|
|
-complete option when defining the command.
|
|
|
|
[frame="topbot",grid="none",cols="1,4"]
|
|
|===============================================================================
|
|
|*altstyle* |alternate author style sheets
|
|
|*bookmark* |bookmarks
|
|
|*buffer* |buffers
|
|
|*color* |color schemes
|
|
|*command* |Ex commands
|
|
|*dialog* |Firefox dialogs
|
|
|*dir* |directories
|
|
|*environment* |environment variables
|
|
|*event* |autocommand events
|
|
|*file* |files
|
|
|*help* |help tags
|
|
|*highlight* |highlight groups
|
|
|*javascript* |JavaScript expressions
|
|
|*macro* |named macros
|
|
|*mapping* |user mappings
|
|
|*menu* |menu items
|
|
|*option* |Vimperator options
|
|
|*preference* |Firefox preferences
|
|
|*search* |search engines and keywords
|
|
|*shellcmd* |shell commands
|
|
|*sidebar* |sidebar panels
|
|
|*url* |URLs
|
|
|*usercommand* |user commands
|
|
|*custom,{func}*|custom completion, provided by {func}
|
|
|===============================================================================
|
|
|
|
|E467| |E468| |:command-completion-custom| +
|
|
Custom completion
|
|
|
|
Custom completion can be provided by specifying the "custom,{func}" argument to
|
|
-complete. The {func} is called with two arguments, a completion context, and
|
|
an object describing the command's arguments. It should set the context's
|
|
\'completions' property, or return an object, with \'items' and \'start'
|
|
properties, describing the completions and where the replacement is to start.
|
|
|
|
*start* is the index into the word being completed at which the returned values
|
|
should be applied and *completions* is a two dimensional array of the form:
|
|
[[arg1, description1], [arg2, description2], ...]
|
|
|
|
// TODO: add examples
|
|
|
|
|E177| |E178| |:command-count| +
|
|
Count handling
|
|
|
|
By default user commands do not accept a count. Use the -count attribute if
|
|
you'd like to have a count passed to your user command. This will then be
|
|
available for expansion as <count> in the argument.
|
|
|
|
|:command-bang| +
|
|
Special cases
|
|
|
|
By default a user command does not have a special version, i.e. a version
|
|
executed with the ! modifier. Providing the -bang attribute will enable this
|
|
and <bang> will be available in the argument.
|
|
|
|
|:command-description| +
|
|
Command description
|
|
|
|
The command's description text can be set with -description. Otherwise it will
|
|
default to "User-defined command".
|
|
|
|
|:command-replacement-text| +
|
|
Replacement text
|
|
|
|
The replacement text {rep} is scanned for escape sequences and these are
|
|
replaced with values from the user-entered command line. The resulting string
|
|
is then executed as an Ex command.
|
|
|
|
The valid escape sequences are:
|
|
|
|
[frame="topbot",grid="none",cols="1,4"]
|
|
|===============================================================================
|
|
|*<args>* |The command arguments exactly as supplied
|
|
|*<count>*|Any supplied count, e.g. 5
|
|
|*<bang>* |! if the command was executed with the ! modifier
|
|
|*<lt>* |A literal '<' character to allow for a literal copy of one of the escape sequences. E.g. <lt>args> will expand to a literal <args>
|
|
|===============================================================================
|
|
|
|
"q-" can be prefixed to the escape sequence so that the value is quoted, making
|
|
it suitable for expression evaluation. Example: <q-args>
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:comc| |:comclear| +
|
|
||:comc[lear]||
|
|
________________________________________________________________________________
|
|
Delete all user-defined commands.
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:delc| |:delcommand|
|
|
||:delc[ommand] {cmd}|| +
|
|
________________________________________________________________________________
|
|
Delete the user-defined command {cmd}.
|
|
________________________________________________________________________________
|
|
|
|
section::Examples[command-examples]
|
|
|
|
Add a :Google command to search via google:
|
|
|
|
\{nbsp}[c]:command -nargs=* Google open google <args>[c]
|
|
|
|
// TODO: add decent examples
|
|
|
|
// vim: set filetype=asciidoc:
|