anchor.diff:  
   Writing a file never uses the window options for example, so any
   options related to writing wont be taken into account if set in the
  -window scope (+BOM+ or +eolformat+ for example).
  -
  -New options can be declared using the +:decl+ command:
  +window scope (`BOM` or `eolformat` for example).
  +
  +New options can be declared using the `:decl` command:
   
   ---------------------------------------
   :decl [-hidden] <type> <name> [<value>]
   ---------------------------------------
   
  -the +-hidden+ parameter makes the option invisible in completion, but
  +the `-hidden` parameter makes the option invisible in completion, but
   still modifiable.
   
   Some options are built in Kakoune, and can be used to control it's behaviour:
   
  - * +tabstop+ _int_: width of a tab character.
  - * +indentwidth+ _int_: width (in spaces) used for indentation.
  + * `tabstop` _int_: width of a tab character.
  + * `indentwidth` _int_: width (in spaces) used for indentation.
      0 means a tab character.
  - * +scrolloff+ _coord_: number of lines,columns to keep visible around
  + * `scrolloff` _coord_: number of lines,columns to keep visible around
      the cursor when scrolling.
  - * +eolformat+ _string_ ('lf' or 'crlf'): the format of end of lines when
  + * `eolformat` _string_ ('lf' or 'crlf'): the format of end of lines when
      writing a buffer, this is autodetected on load.
  - * +BOM+ _string_ ("no" or "utf-8"): define if the file should be written
  + * `BOM` _string_ ("no" or "utf-8"): define if the file should be written
      with an unicode byte order mark.
  - * +complete_prefix+ _bool_: when completing in command line, and multiple
  + * `complete_prefix` _bool_: when completing in command line, and multiple
      candidates exist, enable completion with common prefix.
  - * +incsearch+ _bool_: execute search as it is typed
  - * +aligntab+ _bool_: use tabs for alignement command
  - * +autoinfo+ _bool_: display automatic information box for certain commands.
  - * +autoshowcompl+ _bool_: automatically display possible completions when
  + * `incsearch` _bool_: execute search as it is typed
  + * `aligntab` _bool_: use tabs for alignement command
  + * `autoinfo` _bool_: display automatic information box for certain commands.
  + * `autoshowcompl` _bool_: automatically display possible completions when
      editing a prompt.
  - * +ignored_files+ _regex_: filenames matching this regex wont be considered
  + * `ignored_files` _regex_: filenames matching this regex wont be considered
      as candidates on filename completion (except if the text being completed
      already matches it).
  - * +disabled_hooks+ _regex_: hooks whose group matches this regex wont be
  + * `disabled_hooks` _regex_: hooks whose group matches this regex wont be
      executed. For example indentation hooks can be disabled with '.*-indent'. 
  - * +filetype+ _str_: arbitrary string defining the type of the file
  + * `filetype` _str_: arbitrary string defining the type of the file
      filetype dependant actions should hook on this option changing for
      activation/deactivation.
  - * +path+ _str-list_: directories to search for gf command.
  - * +completers+ _str-list_: completion systems to use for insert mode
  + * `path` _str-list_: directories to search for gf command.
  + * `completers` _str-list_: completion systems to use for insert mode
      completion. given completers are tried in order until one generate some
      completion candidates. Existing completers are:
  -   - +word=all+ or +word=buffer+ which complete using words in all buffers
  -     (+word=all+) or only the current one (+word=buffer+)
  -   - +filename+ which tries to detect when a filename is being entered and
  +   - `word=all` or `word=buffer` which complete using words in all buffers
  +     (`word=all`) or only the current one (`word=buffer`)
  +   - `filename` which tries to detect when a filename is being entered and
        provides completion based on local filesystem.
  -   - +option=<opt-name>+ where <opt-name> is a _str-list_ option. The first
  +   - `option=<opt-name>` where <opt-name> is a _str-list_ option. The first
        element of the list should follow the format:
        _<line>.<column>[+<length>]@<timestamp>_ to define where the completion
        apply in the buffer, and the other strings are the candidates.
  - * +autoreload+ _yesnoask_: auto reload the buffers when an external
  + * `autoreload` _yesnoask_: auto reload the buffers when an external
      modification is detected.
  - * +ui_options+: colon separated list of key=value pairs that are forwarded to
  + * `ui_options`: colon separated list of key=value pairs that are forwarded to
      the user interface implementation. The NCurses UI support the following option:
  -   - +ncurses_status_on_top+: if +yes+, or +true+ the status line will be placed
  +   - `ncurses_status_on_top`: if `yes`, or `true` the status line will be placed
        at the top of the terminal rather than at the bottom.
   
   Faces
  
positive.code: 
  fg_color and bg_color can be:
  
   * A named color: +black, red, green, yellow, blue, magenta, cyan, white+.
   * +default+, which keeps the existing color
   * An rgb color: +rgb:RRGGBB+, with RRGGBB the hexadecimal value of the color.
  
  not specifying bg_color uses +default+
  
  attributes is a string of letters each defining an attributes:
  
   * +u+: Underline
   * +r+: Reverse
   * +b+: Bold
  
  Using named faces instead of facespec permits to change the effective faces
  afterward.
  
  there are some builtins faces used by internal Kakoune functionalities:
  
   * +PrimarySelection+: main selection face for every selected character except
       the cursor
   * +SecondarySelection+: secondary selection face for every selected character
       except the cursor
   * +PrimaryCursor+: cursor of the primary selection
   * +SecondaryCursor+: cursor of the secondary selection
   * +LineNumbers+: face used by the number_lines highlighter
   * +LineNumberAbsolute+: face used to highlight the line number of the main
       selection
   * +MenuForeground+: face for the selected element in menus
   * +MenuBackground+: face for the not selected elements in menus
   * +Information+: face for the informations windows and information messages
   * +Error+: face of error messages
   * +StatusLine+: face used for the status line
   * +StatusCursor+: face used for the status line cursor
   * +Prompt+: face used prompt displayed on the status line
  
  Advanced topics
  ---------------
  
negative.code: Search selection
  ~~~~~~~~~~~~~~~~
  
  Using the `*` key, you can set the search pattern to the current selection.
  This tries to be intelligent. It will for example detect if current selection
  begins and/or end at word boundaries, and set the search pattern accordingly.
  
  with `alt-*` you can set the search pattern to the current seletion without
  Kakoune trying to be smart.
  
  Exec and Eval
  ~~~~~~~~~~~~~
  
  the `:exec` and `:eval` commands can be used for running Kakoune commands.
  `:exec` run keys as if they were pressed, whereas `:eval` executes it's given
  paremeters as if they were entered in the command prompt. By default,
  they do their execution in the context of the current client.
  
  Some parameters provide a way to change the context of execution:
  
   * `-client <name>`: execute in the context of the client named <name>
   * `-try-client <name>`: execute in the context of the client named
       <name> if such client exists, or else in the current context.
   * `-draft`: execute in a copy of the context of the selected client
       modifications to the selections or input state will not affect
       the client. This permits to make some modification to the buffer
       without modifying the user's selection.
   * `-itersel` (requires `-draft`): execute once per selection, in a
       context with only the considered selection. This permits to avoid
       cases where the selections may get merged.
   * `-buffer <names>`: execute in the context of each buffers in the
       comma separated list <names>
   * `-no-hooks`: disable hook execution while executing the keys/commands
  
  The execution stops when the last key/command is reached, or an error
  is raised.
  