2017-11-02 03:03:24 +01:00
|
|
|
= Options
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2017-11-02 03:03:24 +01:00
|
|
|
== Description
|
2017-11-01 12:49:13 +01:00
|
|
|
|
|
|
|
Kakoune can store named and typed values that can be used both to customize
|
|
|
|
the core editor behaviour, and to store data used by extension scripts.
|
|
|
|
|
|
|
|
Options can be modified using the *set-option* command:
|
|
|
|
|
|
|
|
---------------------------------
|
|
|
|
set-option <scope> <name> <value>
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
<scope> can be *global*, *buffer* or *window* (See <<scopes#,`:doc scopes`>>)
|
|
|
|
|
|
|
|
New options can be declared using the *declare-option* command:
|
|
|
|
|
|
|
|
------------------------------------------------
|
|
|
|
declare-option [-hidden] <type> <name> [<value>]
|
|
|
|
------------------------------------------------
|
|
|
|
|
|
|
|
If `-hidden` is specified, the option will not be displayed in completion
|
|
|
|
suggestions.
|
|
|
|
|
2017-11-02 03:03:24 +01:00
|
|
|
== Types
|
2017-11-01 12:49:13 +01:00
|
|
|
|
|
|
|
All options have a type, which defines how they are translated to/from text
|
|
|
|
and their set of valid values.
|
|
|
|
|
|
|
|
Some types are usable for user defined options while some other types
|
|
|
|
are exclusively available to built-in options.
|
|
|
|
|
2016-02-03 18:15:35 +01:00
|
|
|
*int*::
|
|
|
|
an integer number
|
|
|
|
*bool*::
|
|
|
|
a boolean value, yes/true or no/false
|
|
|
|
*str*::
|
|
|
|
a string, some freeform text
|
|
|
|
*regex*::
|
2016-02-10 22:03:49 +01:00
|
|
|
as a string but the set commands will complain if the entered text
|
|
|
|
is not a valid regex
|
2017-11-01 12:49:13 +01:00
|
|
|
*coord*::
|
|
|
|
a line, column pair (separated by comma)
|
|
|
|
*<type>-list*::
|
2016-02-10 22:03:49 +01:00
|
|
|
a list, elements are separated by a colon (:) if an element needs
|
2017-05-11 20:42:09 +02:00
|
|
|
to contain a colon, it can be escaped with a backslash
|
2017-05-17 20:35:54 +02:00
|
|
|
*range-specs*::
|
2017-05-25 10:02:10 +02:00
|
|
|
a `:` separated list of a pair of a buffer range (`<begin
|
|
|
|
line>.<begin column>,<end line>.<end column>` or `<begin
|
|
|
|
line>.<begin column>+<length>`) and a string (separated by `|`),
|
|
|
|
except for the first element which is just the timestamp of
|
|
|
|
the buffer. When the `update-option` is used on an option of
|
|
|
|
this type, its ranges gets updated according to all the buffer
|
|
|
|
modifications that happened since its timestamp.
|
|
|
|
*line-specs*::
|
2017-05-11 20:40:17 +02:00
|
|
|
a `:` separated list of a line number and a corresponding flag
|
2017-05-25 10:02:10 +02:00
|
|
|
(`<line>|<flag text>`), except for the first element which is
|
|
|
|
just the timestamp of the buffer. When the `update-option` is
|
|
|
|
used on an option of this type, its lines gets updated according
|
|
|
|
to all the buffer modifications that happened since its timestamp.
|
2016-08-27 12:05:22 +02:00
|
|
|
*completions*::
|
|
|
|
a `:` separated list of `<text>|<docstring>|<menu text>`
|
|
|
|
candidates, except for the first element which follows the
|
|
|
|
`<line>.<column>[+<length>]@<timestamp>` format to define where the
|
2017-05-17 10:27:57 +02:00
|
|
|
completion apply in the buffer. Markup can be used in the menu text.
|
2016-02-03 18:15:35 +01:00
|
|
|
*enum(value1|value2|...)*::
|
|
|
|
an enum, taking one of the given values
|
|
|
|
*flags(value1|value2|...)*::
|
2016-02-10 22:03:49 +01:00
|
|
|
a set of flags, taking a combination of the given values joined by a
|
|
|
|
'|' character
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2017-11-02 03:03:24 +01:00
|
|
|
== Builtin options
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*tabstop* 'int'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* 8 +
|
2016-02-03 18:15:35 +01:00
|
|
|
width of a tab character
|
|
|
|
|
|
|
|
*indentwidth* 'int'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* 4 +
|
2016-02-03 18:15:35 +01:00
|
|
|
width (in spaces) used for indentation, 0 means a tab character
|
|
|
|
|
|
|
|
*scrolloff* 'coord'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* 0,0 +
|
2016-02-10 22:03:49 +01:00
|
|
|
number of lines, columns to keep visible around the cursor when
|
|
|
|
scrolling
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*eolformat* 'enum(lf|crlf)'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* lf +
|
2016-02-10 22:03:49 +01:00
|
|
|
the format of end of lines when writing a buffer, this is autodetected
|
2016-10-13 10:55:09 +02:00
|
|
|
on load; values of this option assigned to the `window` scope are
|
|
|
|
ignored
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*BOM* 'enum(none|utf8)'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* none +
|
2017-04-21 12:32:47 +02:00
|
|
|
define if the file should be written with a unicode byte order mark;
|
2016-10-13 10:55:09 +02:00
|
|
|
values of this option assigned to the `window` scope are ignored
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2016-07-11 17:39:26 +02:00
|
|
|
*readonly* 'bool'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* false +
|
2016-10-13 10:55:09 +02:00
|
|
|
prevent modifications from being saved to disk, all buffers if set
|
|
|
|
to `true` in the `global` scope, or current buffer if set in the
|
|
|
|
`buffer` scope; values of this option assigned to the `window`
|
|
|
|
scope are ignored
|
2016-07-11 17:39:26 +02:00
|
|
|
|
2016-02-03 18:15:35 +01:00
|
|
|
*incsearch* 'bool'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* true +
|
2016-02-03 18:15:35 +01:00
|
|
|
execute search as it is typed
|
|
|
|
|
|
|
|
*aligntab* 'bool'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* false +
|
2016-04-08 18:00:24 +02:00
|
|
|
use tabs for alignment command
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*autoinfo* 'flags(command|onkey|normal)'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* command|onkey +
|
2016-02-03 18:15:35 +01:00
|
|
|
display automatic information box in the enabled contexts
|
|
|
|
|
|
|
|
*autoshowcompl* 'bool'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* true +
|
2016-02-03 18:15:35 +01:00
|
|
|
automatically display possible completions when editing a prompt
|
|
|
|
|
|
|
|
*ignored_files* 'regex'::
|
2017-04-21 12:32:47 +02:00
|
|
|
filenames matching this regex won't be considered as candidates on
|
2016-02-10 22:03:49 +01:00
|
|
|
filename completion (except if the text being completed already
|
|
|
|
matches it)
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*disabled_hooks* 'regex'::
|
2017-04-21 12:32:47 +02:00
|
|
|
hooks whose group matches this regex won't be executed. For example
|
2016-02-10 22:03:49 +01:00
|
|
|
indentation hooks can be disabled with '.*-indent'
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*filetype* 'str'::
|
2016-02-10 22:03:49 +01:00
|
|
|
arbitrary string defining the type of the file filetype dependant
|
|
|
|
actions should hook on this option changing for activation/deactivation
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*path* 'str-list'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* ./:/usr/include +
|
2016-02-03 18:15:35 +01:00
|
|
|
directories to search for gf command
|
|
|
|
|
2017-11-01 12:49:13 +01:00
|
|
|
*completers* 'completer-list'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* filename:word=all +
|
2016-02-10 22:03:49 +01:00
|
|
|
completion engines to use for insert mode completion (they are tried
|
|
|
|
in order until one generates candidates). Existing completers are:
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*word=all*, *word=buffer*:::
|
2016-02-10 22:03:49 +01:00
|
|
|
which complete using words in all buffers (*word=all*)
|
|
|
|
or only the current one (*word=buffer*)
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*filename*:::
|
2016-02-10 22:03:49 +01:00
|
|
|
which tries to detect when a filename is being entered and
|
|
|
|
provides completion based on local filesystem
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2017-10-02 18:45:11 +02:00
|
|
|
*line*:::
|
|
|
|
which complete using lines in current buffer
|
|
|
|
|
2016-02-03 18:15:35 +01:00
|
|
|
*option=<opt-name>*:::
|
2017-05-20 19:27:02 +02:00
|
|
|
where *opt-name* is an option of type 'completions' whose
|
|
|
|
contents will be used
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2016-08-21 21:25:11 +02:00
|
|
|
*static_words* 'str-list'::
|
|
|
|
list of words that are always added to completion candidates
|
|
|
|
when completing words in insert mode
|
|
|
|
|
2017-07-12 19:18:24 +02:00
|
|
|
*extra_word_chars* 'codepoint-list'::
|
|
|
|
a list of all additional codepoints that should be considered
|
2016-08-21 21:25:11 +02:00
|
|
|
as word character for the purpose of insert mode completion.
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*autoreload* 'enum(yes|no|ask)'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* ask +
|
2016-02-03 18:15:35 +01:00
|
|
|
auto reload the buffers when an external modification is detected
|
|
|
|
|
2017-08-27 19:30:26 +02:00
|
|
|
*debug* 'flags(hooks|shell|profile|keys|commands)'::
|
2016-02-03 18:15:35 +01:00
|
|
|
dump various debug information in the '\*debug*' buffer
|
|
|
|
|
2016-09-18 14:47:22 +02:00
|
|
|
*idle_timeout* 'int'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* 50 +
|
2016-09-18 14:47:22 +02:00
|
|
|
timeout, in milliseconds, with no user input that will trigger the
|
2017-10-10 12:05:10 +02:00
|
|
|
*PromptIdle*, *InsertIdle* and *NormalIdle* hooks, and autocompletion.
|
2016-09-18 14:47:22 +02:00
|
|
|
|
|
|
|
*fs_checkout_timeout* 'int'::
|
2017-09-12 09:53:06 +02:00
|
|
|
*default* 500 +
|
2016-09-18 14:47:22 +02:00
|
|
|
timeout, in milliseconds, between checks in normal mode of modifications
|
|
|
|
of the file associated with the current buffer on the filesystem.
|
|
|
|
|
2016-02-03 18:15:35 +01:00
|
|
|
*modelinefmt* 'string'::
|
2016-02-10 22:03:49 +01:00
|
|
|
A format string used to generate the mode line, that string is first
|
|
|
|
expanded as a command line would be (expanding '%...{...}' strings),
|
2017-03-10 10:06:37 +01:00
|
|
|
then markup tags are applied (c.f. the 'Expansions' documentation page.)
|
|
|
|
Two special atoms are available as markup:
|
|
|
|
|
|
|
|
*`{{mode_info}}`*:::
|
2017-05-11 20:42:09 +02:00
|
|
|
Information about the current mode, such as `insert 3 sel` or
|
2017-03-10 10:06:37 +01:00
|
|
|
`prompt`. The faces used are StatusLineMode, StatusLineInfo,
|
|
|
|
and StatusLineValue.
|
|
|
|
|
|
|
|
*`{{context_info}}`*:::
|
|
|
|
Information such as `[+][recording (@)][no-hooks][new file][fifo]`,
|
|
|
|
in face Information.
|
|
|
|
|
|
|
|
The default value is '%val{bufname} %val{cursor_line}:%val{cursor_char_column} {{context_info}} {{mode_info}} - %val{client}@[%val{session}]'
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2017-11-01 12:49:13 +01:00
|
|
|
*ui_options* 'str-to-str-map'::
|
2016-02-10 22:03:49 +01:00
|
|
|
colon separated list of key=value pairs that are forwarded to the user
|
|
|
|
interface implementation. The NCurses UI support the following options:
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*ncurses_set_title*:::
|
2016-02-10 22:03:49 +01:00
|
|
|
if *yes* or *true*, the terminal emulator title will
|
|
|
|
be changed
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*ncurses_status_on_top*:::
|
2016-02-10 22:03:49 +01:00
|
|
|
if *yes*, or *true* the status line will be placed
|
|
|
|
at the top of the terminal rather than at the bottom
|
2016-02-03 18:15:35 +01:00
|
|
|
|
|
|
|
*ncurses_assistant*:::
|
2016-02-10 22:03:49 +01:00
|
|
|
specify the nice assistant you get in info boxes,
|
2017-03-08 17:45:15 +01:00
|
|
|
can be *clippy* (the default), *cat*, *dilbert* or *none*
|
2016-02-03 18:15:35 +01:00
|
|
|
|
2016-10-29 09:48:02 +02:00
|
|
|
*ncurses_enable_mouse*:::
|
|
|
|
boolean option that enables mouse support
|
|
|
|
|
2016-12-30 08:01:13 +01:00
|
|
|
*ncurses_change_colors*:::
|
|
|
|
boolean option that can disable color palette changing if the
|
|
|
|
terminfo enables it but the terminal does not support it.
|
|
|
|
|
2016-02-03 18:15:35 +01:00
|
|
|
*ncurses_wheel_down_button*, *ncurses_wheel_up_button*:::
|
|
|
|
specify which button send for wheel down/up events
|