This commit is contained in:
Maxime Coste 2022-05-16 19:49:22 +10:00
commit a8f289000c

View File

@ -29,7 +29,7 @@ See https://github.com/mawww/golf for Kakoune solutions to vimgolf challenges,
regularly beating the best Vim solution. regularly beating the best Vim solution.
See the link:doc/design.asciidoc[design document] for more information on See the link:doc/design.asciidoc[design document] for more information on
Kakoune philosophy and design. Kakoune's philosophy and design.
:numbered: :numbered:
@ -37,16 +37,15 @@ Introduction
------------ ------------
Kakoune is a code editor that implements Vi's "keystrokes as a text editing Kakoune is a code editor that implements Vi's "keystrokes as a text editing
language" model. As it's also a modal editor, it is somewhat similar to the language" model. As it is also a modal editor, it is somewhat similar to the
Vim editor (after which Kakoune was originally inspired). Vim editor (after which Kakoune was originally inspired).
Kakoune can operate in two modes, normal and insertion. In insertion mode, Kakoune can operate in two modes: *normal* and *insertion*. In insertion mode,
keys are directly inserted into the current buffer. In normal mode, keys keys are directly inserted into the current buffer. In normal mode, keys
are used to manipulate the current selection and to enter insertion mode. are used to manipulate the current selection and to enter insertion mode.
Kakoune has a strong focus on interactivity, most commands provide immediate Kakoune has a strong focus on interactivity. Most commands provide immediate
and incremental results, while still being competitive (as in keystroke count) and incremental results, while being competitive with Vim in terms of keystroke count.
with Vim.
Kakoune works on selections, which are oriented, inclusive ranges of characters. Kakoune works on selections, which are oriented, inclusive ranges of characters.
Selections have an anchor and a cursor. Most commands move both of Selections have an anchor and a cursor. Most commands move both of
@ -101,7 +100,7 @@ Getting started
Building Building
~~~~~~~~ ~~~~~~~~
Kakoune dependencies are: Kakoune's dependencies are:
* A {cpp}20 compliant compiler (GCC >= 10.3 or clang >= 11) along with its * A {cpp}20 compliant compiler (GCC >= 10.3 or clang >= 11) along with its
associated {cpp} standard library (libstdc{pp} >= 10 or libc{pp}) associated {cpp} standard library (libstdc{pp} >= 10 or libc{pp})
@ -115,7 +114,7 @@ on being in a Unix-like environment, no native Windows version is planned.
Installing Installing
~~~~~~~~~~ ~~~~~~~~~~
In order to install kak on your system, rather than running it directly from In order to install *kak* on your system, rather than running it directly from
its source directory, type *make install*. You can specify the `PREFIX` and its source directory, type *make install*. You can specify the `PREFIX` and
`DESTDIR` if needed. `DESTDIR` if needed.
@ -315,7 +314,7 @@ nix-env -iA nixpkgs.kakoune
Running Running
~~~~~~~ ~~~~~~~
Just running *kak* launches a new kak session with a client on local terminal. Running *kak* launches a new kak session with a client on local terminal.
Run *kak -help* to discover the valid command line flags. Run *kak -help* to discover the valid command line flags.
Configuration Configuration
@ -339,13 +338,13 @@ directory. It will first look for an `autoload` directory at
it does not exist. it does not exist.
Once all those files are loaded, Kakoune will try to source Once all those files are loaded, Kakoune will try to source
`${runtime}/kakrc.local` which is expected to contain distribution provided `${runtime}/kakrc.local`, which is expected to contain distribution provided
configuration. configuration.
And finally, the user configuration will be loaded from `${userconf}/kakrc`. Finally, the user configuration will load from `${userconf}/kakrc`.
NOTE: If you create a user `autoload` directory in `${userconf}/autoload`, NOTE: If you create a user `autoload` directory in `${userconf}/autoload`,
the system one at `${runtime}/autoload` will not be loaded anymore. You can the system one at `${runtime}/autoload` will not load anymore. You can
add a symbolic link to it (or to individual scripts) inside add a symbolic link to it (or to individual scripts) inside
`${userconf}/autoload` to keep loading system scripts. `${userconf}/autoload` to keep loading system scripts.
@ -367,7 +366,7 @@ Normal Mode
~~~~~~~~~~~ ~~~~~~~~~~~
In normal mode, keys are not inserted directly inside the buffer, but are editing In normal mode, keys are not inserted directly inside the buffer, but are editing
commands. These commands provide ways to manipulate either the selections themselves, commands. These commands provide ways to manipulate either the selections themselves
or the selected text. or the selected text.
Insert Mode Insert Mode
@ -379,9 +378,9 @@ selection's cursor. Some additional keys are recognised in insert mode:
* `<esc>`: leave insert mode * `<esc>`: leave insert mode
* `<backspace>`: delete characters before cursors * `<backspace>`: delete characters before cursors
* `<del>`: delete characters under cursors * `<del>`: delete characters under cursors
* `<left>, <right>, <up>, <down>`: move the cursors in given direction * `<left>, <right>, <up>, <down>`: move cursors in given direction
* `<home>`: move cursors to line begin * `<home>`: move cursors to line beginning
* `<end>`: move cursors to end of line * `<end>`: move cursors to line ending
* `<c-n>`: select next completion candidate * `<c-n>`: select next completion candidate
* `<c-p>`: select previous completion candidate * `<c-p>`: select previous completion candidate
@ -393,16 +392,16 @@ selection's cursor. Some additional keys are recognised in insert mode:
* `<c-r>`: insert contents of the register given by next key * `<c-r>`: insert contents of the register given by next key
* `<c-v>`: insert next keystroke directly into the buffer, * `<c-v>`: insert next keystroke directly into the buffer,
without interpreting it. without interpreting it
* `<c-u>`: commit changes up to now as a single undo group. * `<c-u>`: commit changes up to now as a single undo group
* `<a-;>`: escape to normal mode for a single command * `<a-;>`: escape to normal mode for a single command
Movement Movement
~~~~~~~~ ~~~~~~~~
See <<Appending>> below for instructions on extending (appending to) the current selection, in order to select more text in multiple steps. See <<Appending>> below for instructions on extending (appending to) the current selection in order to select more text.
* `h`: select the character on the left of selection end * `h`: select the character on the left of selection end
* `j`: select the character below the selection end * `j`: select the character below the selection end
@ -412,7 +411,7 @@ See <<Appending>> below for instructions on extending (appending to) the current
* `w`: select the word and following whitespaces on the right of selection end * `w`: select the word and following whitespaces on the right of selection end
* `b`: select preceding whitespaces and the word on the left of selection end * `b`: select preceding whitespaces and the word on the left of selection end
* `e`: select preceding whitespaces and the word on the right of selection end * `e`: select preceding whitespaces and the word on the right of selection end
* `<a-[wbe]>`: same as [wbe] but select WORD instead of word * `<a-[wbe]>`: same as [wbe], but select WORD instead of word
* `f`: select to (including) the next occurrence of the given character * `f`: select to (including) the next occurrence of the given character
* `t`: select until (excluding) the next occurrence of the given character * `t`: select until (excluding) the next occurrence of the given character