Kakoune is a code editor heavily inspired by Vim, as such most of its commands
are similar to Vi's ones, and it shares Vi's "keystrokes as a text
editing language" model.

Kakoune can operate in two modes, normal and insertion. In
insertion mode, keys are directly inserted into the current buffer. In
normal mode, keys are used to manipulate the current selection and to enter
insertion mode.

Kakoune has a strong focus on interactivity, most commands provide
immediate and incremental results, while still being competitive (as in
keystroke count) with Vim.

Kakoune works on selections, which are oriented, inclusive range
of characters, selections have an anchor and a cursor character. Most
commands move both of them, except when extending selection where the anchor
character stays fixed and the cursor one moves around.

remove sessions that terminated in an incorrect state (e.g. after a crash)

-ro

enter in readonly mode, all the buffers opened will not be written
to disk

+line[:column]

specify a target line and column for the first file; when
the plus sign is followed by only a colon, then the cursor is sent to the
last line of the file

file

one or more files to edit

At startup, if -n is not specified, Kakoune will try to
source the file ../share/kak/kakrc relative to the kak binary. This
kak file will then try to recursively source any files in
$XDG_CONFIG_HOME/kak/autoload (with $XDG_CONFIG_HOME
defaulting to $HOME/.config, and falling back to
../share/kak/autoload if that autoload directory does not exist), and
finally $XDG_CONFIG_HOME/kak/kakrc.

That leads to the following behaviour: by default, with no user
autoload directory, the system wide autoload directory is used, once the
user wants control on autoloading, they can create an autoload directory and
eventually symlink individual scripts, or the whole system wide autoload
directory. They can as well add any new scripts not provided with
Kakoune.

If not started with the -n switch, Kakoune will source the
../share/kak/kakrc file relative to the kak binary, which will source
additional files:

if the $XDG_CONFIG_HOME/kak/autoload directory exists, load every
*.kak files in it, and load recursively any subdirectory

if it does not exist, fall back to the system wide autoload directory
in ../share/kak/autoload

After that, if it exists, source the
$XDG_CONFIG_HOME/kak/kakrc file which should be used for user
configuration. In order to continue autoloading site-wide files with a local
autoload directory, just add a symbolic link to ../share/kak/autoload
into your local autoload directory.