Document the new <c-g> key, and <c-c> too while we're at it.

Sometimes we get people asking why <c-c> can't be mapped. It should be
mentioned in the `:help mapping` documentation, along with any other
unmappable keys.
This commit is contained in:
Tim Allen 2023-05-21 20:14:56 +10:00
parent cfa658b899
commit 45c01c2109
2 changed files with 23 additions and 0 deletions

View File

@ -825,3 +825,23 @@ The following keys are recognized by this mode to help with editing
*<space>*:: *<space>*::
enter default `user mode` to access custom commands enter default `user mode` to access custom commands
(See <<modes#user-mode,`:doc modes user-mode`>>) (See <<modes#user-mode,`:doc modes user-mode`>>)
== Cancelling operations
These keys are used to cancel long-running operations, either inside
Kakoune or outside it. Because they are intended as a safety mechanism
when something goes wrong, these keys are handled very early on in
Kakoune's input processing, and therefore cannot be remapped in any mode.
*<c-c>*::
Stop any external processes. If you ever see Kakoune display a message
like "waiting for shell command to finish", this key will stop
that command so you can regain control of Kakoune.
Technically, this key causes Kakoune to send the SIGINT signal
to its entire process group.
*<c-g>*::
Cancel a long-running Kakoune operation, such as a regex search on a
very large file. This also clears Kakoune's input buffer, so any
commands that were waiting for the long-running operation to complete
will also be cancelled.

View File

@ -144,6 +144,9 @@ possible combination can be triggered. For example, due to limitations in
the way terminals handle control characters, mappings like *<c-s-a>* are the way terminals handle control characters, mappings like *<c-s-a>* are
unlikely to work in Kakoune's terminal UI. unlikely to work in Kakoune's terminal UI.
Some keys, like `<c-c>` and `<c-g>`, cannot be remapped because they are
used to cancel operations. See <<keys#cancelling-operations,`:doc keys cancelling-operations`>>.
== Default mappings == Default mappings
Some mappings exist by default in the global scope: Some mappings exist by default in the global scope: