mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-30 08:22:27 +01:00
Re-introduced S- into the canonical mappings so that re-canonicalising will not differ from the original canonicalised form. Documented recent changes to S- modifier in help. Refactor events.js to avoid replicating parsing key-strings in two places. The new fromString is the opposite of toString, and canonicalisation now proceeds by doing both. Added the .liberatorShift property to event-representations to allow for key-combinations that cannot be typed, but can be mapped to. e.g. <S-@>
431 lines
15 KiB
Plaintext
431 lines
15 KiB
Plaintext
heading:Key{nbsp}mappings,{nbsp}abbreviations,{nbsp}and{nbsp}user-defined{nbsp}commands.[]
|
|
|
|
section:Key{nbsp}mapping[key-mapping,mapping,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 sequence of keys,
|
|
which are 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.
|
|
|
|
There are separate key mapping tables for each of the Normal, Insert, and
|
|
Command-line modes.
|
|
|
|
Please note that, like Vim and other applications, modifier mappings containing
|
|
the Shift key are specified with a [m]S-[m] modifier. For example, [m]<C-N>[m]
|
|
is exactly the same as [m]<C-n>[m], it represents holding the Control key and a
|
|
lowercase [m]n[m]. In order to map the Control key with an uppercase [m]N[m], either
|
|
[m]<C-S-N>[m] or [m]<C-S-n>[m] can be used. For numbers and punctuation characters that
|
|
cannot change case, the [m]S-[m] is not used, even if you need to hold shift to type
|
|
that character. The mapping [m]<S-1>[m] can never be typed on a keyboard, but can
|
|
be used to create a mapping that can be activated by another map.
|
|
|
|
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 key sequence {lhs} to {rhs} for the applicable mode(s). The {rhs} is
|
|
remapped, allowing for nested and recursive mappings.
|
|
|
|
Warning: Mappings are NOT saved between sessions, make sure you put them in your
|
|
vimperatorrc file!
|
|
________________________________________________________________________________
|
|
|
|
|
|
|: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 key sequence {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|
|
|
||:map|| +
|
|
|:nm| |:nmap|
|
|
||:nm[ap]|| +
|
|
|:vm| |:vmap|
|
|
||:vm[ap]|| +
|
|
|:im| |:imap|
|
|
||:im[ap]|| +
|
|
|:cm| |:cmap|
|
|
||:cm[ap]|| +
|
|
________________________________________________________________________________
|
|
List all mappings for the applicable mode(s).
|
|
________________________________________________________________________________
|
|
|
|
|
|
|:map|
|
|
||:map {lhs}|| +
|
|
|:nm| |:nmap|
|
|
||:nm[ap] {lhs}|| +
|
|
|:vm| |:vmap|
|
|
||:vm[ap] {lhs}|| +
|
|
|:im| |:imap|
|
|
||:im[ap] {lhs}|| +
|
|
|:cm| |:cmap|
|
|
||: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.
|
|
|
|
subsection:Mapping{nbsp}and{nbsp}modes[:map-modes]
|
|
|
|
Keys can be mapped in four distinct modes:
|
|
|
|
* Normal mode
|
|
* Visual mode
|
|
* Insert mode
|
|
* Command-line mode
|
|
|
|
|map-overview| |map-modes| +
|
|
|
|
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: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:
|
|
`----------`--------------------------------------------------------------------
|
|
*-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.
|
|
`----------------`--------------------------------------------------------------
|
|
*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:
|
|
`----------`--------------------------------------------------------------------
|
|
*<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:
|