Merge remote-tracking branch 'Delapouite/doc-aliases'

This commit is contained in:
Maxime Coste 2019-04-20 10:28:01 +02:00
commit 04df0e181e
2 changed files with 34 additions and 23 deletions

View File

@ -790,37 +790,21 @@ Custom key shortcuts can be registered through mappings.
See <<doc/pages/mapping#,`:doc mapping`>>. See <<doc/pages/mapping#,`:doc mapping`>>.
Defining Commands Defining Commands and Aliases
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
New commands can be created using `:define-command`. New commands can be created using `:define-command`.
See <<doc/pages/commands#declaring-new-commands,`:doc commands declaring-new-commands`>>. See <<doc/pages/commands#declaring-new-commands,`:doc commands declaring-new-commands`>>.
They can be given additional short names depending of the scope with `:alias`.
See <<doc/pages/commands#aliases,`:doc commands aliases`>>.
Some helper commands are available to define composite commands. Some helper commands are available to define composite commands.
See <<doc/pages/commands#helpers,`:doc commands helpers`>>. See <<doc/pages/commands#helpers,`:doc commands helpers`>>.
Aliases
~~~~~~~
With `:alias` commands can be given additional names. Aliases are scoped, so
that an alias can refer to one command for a buffer, and to another for another
buffer. The following command defines `<alias>` as an alias for `<command>`:
--------------------------------
:alias <scope> <alias> <command>
--------------------------------
`<scope>` can be one of `global`, `buffer` or `window`.
-------------------------------------
:unalias <scope> <alias> [<expected>]
-------------------------------------
Will remove the given alias in the given scope. If `<expected>` is specified
the alias will only be removed if its current value is `<expected>`.
FIFO Buffers FIFO Buffers
~~~~~~~~~~~ ~~~~~~~~~~~

View File

@ -150,12 +150,12 @@ of the file onto the filesystem
*alias* <scope> <name> <command>:: *alias* <scope> <name> <command>::
define a new alias named *name* in *scope* define a new alias named *name* in *scope*
(See <<scopes#,`:doc scopes`>>) (See <<aliases,Using aliases>> and <<scopes#,`:doc scopes`>>)
*unalias* <scope> <name> [<command>]:: *unalias* <scope> <name> [<command>]::
remove an alias if its current value is the same as the one passed remove an alias if its current value is the same as the one passed
as an optional parameter, remove it unconditionally otherwise as an optional parameter, remove it unconditionally otherwise
(See <<scopes#,`:doc scopes`>>) (See <<aliases,Using aliases>> and <<scopes#,`:doc scopes`>>)
*evaluate-commands* [<switches>] <command> ...:: *evaluate-commands* [<switches>] <command> ...::
*alias* eval + *alias* eval +
@ -404,3 +404,30 @@ Kakoune's state:
-------------------------------------------------------- --------------------------------------------------------
def " print_selection %{ echo %sh{ ${kak_selection} } }" def " print_selection %{ echo %sh{ ${kak_selection} } }"
-------------------------------------------------------- --------------------------------------------------------
== Aliases
With `:alias`, commands can be given additional names.
As aliases are intended to be used interactively most of the time,
they are often short. For example `:reg` is an alias for `:set-register`.
They are scoped, so that an alias can refer to one command for a buffer,
and to another for another buffer. For instance `:next` could be an alias
for `grep-next-match` in a `*grep*` buffer while pointing to
`:make-next-error` in a `*make*` buffer.
The following command defines `<alias>` as an alias for `<command>`:
--------------------------------
:alias <scope> <alias> <command>
--------------------------------
`<scope>` can be one of `global`, `buffer` or `window`.
-------------------------------------
:unalias <scope> <alias> [<expected>]
-------------------------------------
Will remove the given alias in the given scope. If `<expected>` is specified
the alias will only be removed if its current value is `<expected>`.