STRINGS¶
'strings'
uninterpreted strings, use a backslash (\') to escape the
separator
"strings"
expanded strings, % strings (c.f. next section) contained
are expended, use a backslash (\\%) to escape the separator
%{strings}
these strings are very useful when entering commands
•the
{ and
} delimiters are
configurable, you can use any non alphanumeric character
e.g. %[string], %<string>, %(string), %~string~, %!string!
•if the character following
% is one of
{[(<, then the closing one is the matching
}])> and the
delimiters are not escapable but are nestable
e.g. %{ roger {}; } is a valid string, %{ marcel \} as well
TYPED EXPANSIONS¶
sh
shell expansion, similar to posix shell $(...)
construct (c.f. next section)
reg
register expansion, will be replaced by the content of
the given register
opt
option expansion, will be replaced with the value of the
given option
val
value expansion, gives access to the environment variable
available to the Shell expansion. The kak_ prefix is not used
there
arg
argument expansion, gives access to the arguments of the
current command, the content can be a number, or @ for all arguments
SHELL EXPANSIONS¶
The %sh{...} expansion replaces its content with the output
of the shell commands in it. The following environment variables are used to
pass information about Kakoune’s state:
kak_selection
content of the main selection
kak_selections
content of the selection separated by colons, colons in
the selection contents are escaped with a backslash
kak_selection_desc
range of the main selection, represented as
anchor,cursor; anchor and cursor are in this format: line.column
kak_selections_desc
range of the selections separated by colons
kak_bufname
name of the current buffer
kak_buffile
full path of the file or same as kak_bufname when
there’s no associated file
kak_buflist
the current buffer list, each buffer separated by a
colon
kak_timestamp
timestamp of the current buffer, the timestamp is an
integer value which is incremented each time the buffer is modified
kak_runtime
directory containing the kak binary
kak_count
count parameter passed to the command
kak_opt_<name>
value of option name
kak_reg_<r>
value of register r
kak_socket
filename of session socket
(/tmp/kak-<session>)
kak_session
name of the current session
kak_client
name of current client
kak_cursor_line
line of the end of the main selection
kak_cursor_column
column of the end of the main selection (in byte)
kak_cursor_char_column
column of the end of the main selection (in
character)
kak_window_width
width of the current kakoune window
kak_window_height
height of the current kakoune window
kak_hook_param
filtering text passed to the currently executing
hook
kak_client_env_<name>
value of the name variable in the client
environment (e.g. $kak_client_env_SHELL is the SHELL variable)
Note that in order for Kakoune to pass a value in the environment,
the variable has to be spelled out within the body of the expansion
MARKUP STRINGS¶
In certain contexts, Kakoune can take a markup string, which is a
string syntax will enable the face facename until another face gets
activated, or the end of the string is reached.
Literal { characters shall be written {, and a
literal backslash (\) that precedes a { character shall be
escaped as well (\\).