HEADER |key-mapping| |abbreviations| |user-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: :map :echo new Date().toDateString() will echo the current date to the command-line when [m][m] is pressed. There are separate key mapping tables for each of the Normal, Insert, Command-line modes. |:map-special-chars| + || + |||| ________________________________________________________________________________ Do nothing. This command is useful for disabling a specific mapping. [c]:map [c] will prevent [m][m] from doing anything. ________________________________________________________________________________ || |map_return| + |||| ________________________________________________________________________________ Expand to a line terminator in a key mapping. An Ex command in the {rhs} of a mapping requires a a line terminator after it so that it is executed when the mapping is expanded. [m][m] should be used for this purpose. ________________________________________________________________________________ || |mapleader| + |||| ________________________________________________________________________________ Expands to the value of the "mapleader" variable in key mapping. If "mapleader" is unset or empty then "\" is used. Example: + \{nbsp}[c]:map h :echo "Hello"[c] + works like + \{nbsp}[c]:map \h :echo "Hello"[c] + but after + \{nbsp}[c]let mapleader = ","[c] + it works like + \{nbsp}[c]:map ,h :echo "Hello"[c] ________________________________________________________________________________ |:map| ||:map {lhs} {rhs}|| + ||:map {lhs}|| + ||:map|| ________________________________________________________________________________ Map the key sequence {lhs} to {rhs}. The {rhs} is remapped, allowing for nested and recursive mappings. Warning: Mappings are NOT saved during sessions, make sure you put them in your vimperatorrc file! ________________________________________________________________________________ |:cm| |:cmap| ||:cmap {lhs} {rhs}|| + ||:cmap {lhs}|| + ||:cmap|| ________________________________________________________________________________ Map the key sequence {lhs} to {rhs} (in Command-line mode). The {rhs} is remapped, allowing for nested and recursive mappings. Warning: Mappings are NOT saved during sessions, make sure you put them in your vimperatorrc file! ________________________________________________________________________________ |:im| |:imap| ||:imap {lhs} {rhs}|| + ||:imap {lhs}|| + ||:imap|| ________________________________________________________________________________ Map the key sequence {lhs} to {rhs} (in insert mode). The {rhs} is remapped, allowing for nested and recursive mappings. Warning: Mappings are NOT saved during sessions, make sure you put them in your vimperatorrc file! ________________________________________________________________________________ |:mapc| |:mapclear| + ||:mapc[lear]|| ________________________________________________________________________________ Remove all mappings. All user-defined mappings which were set by [c]:map[c] or [c]:noremap[c] are cleared. ________________________________________________________________________________ |:cmapc| |:cmapclear| + ||:cmapc[lear]|| ________________________________________________________________________________ Remove all mappings (in Command-line mode). All user-defined mappings which were set by [c]:cmap[c] or [c]:cnoremap[c] are cleared. ________________________________________________________________________________ |:imapc| |:imapclear| + ||:imapc[lear]|| ________________________________________________________________________________ Remove all mappings (in insert mode). All user-defined mappings which were set by [c]:imap[c] or [c]:inoremap[c] are cleared. ________________________________________________________________________________ |:no| |:noremap| + ||:no[remap] {lhs} {rhs}|| + ||:no[remap] {lhs}|| + ||:no[remap]|| ________________________________________________________________________________ Map the key sequence {lhs} to {rhs}. No remapping of the {rhs} is performed. ________________________________________________________________________________ |:cno| |:cnoremap| + ||:cno[remap] {lhs} {rhs}|| + ||:cno[remap] {lhs}|| + ||:cno[remap]|| ________________________________________________________________________________ Map the key sequence {lhs} to {rhs} (in Command-line mode). No remapping of the {rhs} is performed. ________________________________________________________________________________ |:ino| |:inoremap| + ||:ino[remap] {lhs} {rhs}|| + ||:ino[remap] {lhs}|| + ||:ino[remap]|| ________________________________________________________________________________ Map the key sequence {lhs} to {rhs} (in insert mode). No remapping of the {rhs} is performed. ________________________________________________________________________________ |:map-| + ________________________________________________________________________________ When the first argument to one of the mapping commands is , {rhs} is not echoed to the commandline, nor, for that matter, is anything else until the command has completed. ________________________________________________________________________________ |:unm| |:unmap| + ||:unm[ap] {lhs}|| ________________________________________________________________________________ Remove the mapping of {lhs}. ________________________________________________________________________________ |:cunm| |:cunmap| + ||:cunm[ap] {lhs}|| ________________________________________________________________________________ Remove the mapping of {lhs} (in Command-line mode). ________________________________________________________________________________ |:iunm| |:iunmap| + ||:iunm[ap] {lhs}|| ________________________________________________________________________________ Remove the mapping of {lhs} (in insert mode). ________________________________________________________________________________ section:Abbreviations[abbreviations] |:ab| |:abbreviate| ||:ab[breviate] {lhs} {rhs}|| + ||:ab[breviate] {lhs}|| + ||:ab[breviate]|| ________________________________________________________________________________ Abbreviate a key sequence. Abbreviate {lhs} to {rhs}. If only {lhs} given, list that particular abbreviation. List all abbreviations, if no arguments to are given. ________________________________________________________________________________ |:ca| |:cabbrev| ||:ca[bbrev] {lhs} {rhs}|| + ||:ca[bbrev] {lhs}|| + ||:ca[bbrev]|| ________________________________________________________________________________ Abbreviate a key sequence for Command-line mode. Same as [c]:ab[reviate][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 argument is allowd -------------------------------------------------------------------------------- |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 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 will be available in the argument. |: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: `----------`-------------------------------------------------------------------- ** The command arguments exactly as supplied ** Any supplied count E.g. 5 ** ! if the command was executed with the ! modifier ** A literal '<' character to allow for a literal copy of one of the escape sequences. E.g. args> will expand to a literal -------------------------------------------------------------------------------- "q-" can be prefixed to the escape sequence so that the value is quoted, making it suitable for expression evaluation. Example: ________________________________________________________________________________ |: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: :command -nargs=* Google open google // TODO: add decent examples // vim: set syntax=asciidoc: