Provided by: kakoune_0~2016.12.20.1.3a6167ae-1build1_amd64 bug

NAME

       hooks - a

DESCRIPTION

       Commands can be registered to be executed when certain events arise. To register a hook
       use the following command:

           hook [-group <group>] <scope> <hook_name> <filtering_regex> <commands>

       scope can be one of global, buffer or window (c.f. the scopes documentation page).

       command is a string containing the commands to execute when the hook is called.

       For example to automatically use line numbering with .cc files, use the following command:

           hook global WinCreate .*\.cc %{ addhl number_lines }

       if group is given, make this hook part of the named group. Groups are used for removing
       hooks with the following command:

           rmhooks <scope> <group>

       A call to the command above will remove every hooks in scope that are part of the given
       group.

DEFAULT HOOKS

       NormalIdle
           a certain duration has passed since last key was pressed in normal mode

       NormalBegin
           entering normal mode

       NormalEnd
           leaving normal mode

       NormalKey
           a key is received in normal mode, the key is used for filtering

       InsertIdle
           a certain duration has passed since last key was pressed in insert mode

       InsertBegin
           entering insert mode

       InsertEnd
           leaving insert mode

       InsertKey
           a key is received in insert mode, the key is used for filtering

       InsertChar
           a character is received in insert mode, the character is used for filtering

       InsertMove
           the cursor moved (without inserting) in insert mode, the key that triggered the move
           is used for filtering

       WinCreate
           a window was created, the filtering text is the buffer name

       WinClose
           a window was destroyed, the filtering text is the buffer name

       WinResize
           a window resized, the filtering text is <line>.<column>

       WinDisplay
           a window was bound a client, the filtering text is the buffer name

       WinSetOption
           an option was set in a window context, the filtering text is <option_name>=<new_value>

       BufSetOption
           an option was set in a buffer context, the filtering text is <option_name>=<new_value>

       BufNew
           a buffer for a new file has been created, filename is used for filtering

       BufOpen
           a buffer for an existing file has been created, filename is used for filtering

       BufCreate
           a buffer has been created, filename is used for filtering

       BufWritePre
           executed just before a buffer is written, filename is used for filtering

       BufWritePost
           executed just after a buffer is written, filename is used for filtering

       BufClose
           executed when a buffer is deleted, while it is still valid

       BufOpenFifo
           executed when a buffer opens a fifo

       BufReadFifo
           executed after some data has been read from a fifo and inserted in the buffer

       BufCloseFifo
           executed when a fifo buffer closes its fifo file descriptor either because the buffer
           is being deleted, or because the writing end has been closed

       RuntimeError
           an error was encountered while executing an user command the error message is used for
           filtering

       KakBegin
           kakoune has started, this hook is called just after reading the user configuration
           files

       KakEnd
           kakoune is quitting

       FocusIn
           on supported clients, triggered when the client gets focused. the filtering text is
           the client name

       FocusOut
           on supported clients, triggered when the client gets unfocused. the filtering text is
           the client name

       InsertCompletionShow
           Triggered when the insert completion menu gets displayed

       InsertCompletionHide
           Triggered when the insert completion menu gets hidden

       When not specified, the filtering text is an empty string. Note that some hooks will not
       consider underlying scopes depending on what context they are bound to be run into, e.g.
       the BufWritePost hook is a buffer hook, and will not consider the window scope.

                                                                                     KAK_HOOKS(1)