116 lines
3.5 KiB
Plaintext
116 lines
3.5 KiB
Plaintext
|
.TH KAKOUNE 1 "" "" "EXPANSIONS"
|
|||
|
|
|||
|
.SS Strings
|
|||
|
.TP
|
|||
|
.BR 'strings'
|
|||
|
uninterpreted strings, use a backslash (\\') to escape the separator
|
|||
|
.TP
|
|||
|
.BR "strings"
|
|||
|
expanded strings, % strings (c.f. next section) contained are expended, use a backslash (\\%) to escape the separator
|
|||
|
.TP
|
|||
|
.BR %{strings}
|
|||
|
these strings are very useful when entering commands the
|
|||
|
.IR { " 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.
|
|||
|
.IR %{\ roger\ {};\ } " is a valid string
|
|||
|
|
|||
|
.SS Typed expansions
|
|||
|
.TP
|
|||
|
.BR sh
|
|||
|
shell expansion, similar to posix shell $(…) construct (c.f. next section)
|
|||
|
.TP
|
|||
|
.BR reg
|
|||
|
register expansion, will be replaced by the content of the given register
|
|||
|
.TP
|
|||
|
.BR opt
|
|||
|
option expansion, will be replaced with the value of the given option
|
|||
|
.TP
|
|||
|
.BR val
|
|||
|
value expansion, gives access to the environment variable available to the Shell expansion. The kak_ prefix is not used there
|
|||
|
.TP
|
|||
|
.BR arg
|
|||
|
argument expansion, gives access to the arguments of the current command, the content can be a number, or @ for all arguments
|
|||
|
|
|||
|
.SS Shell expansions
|
|||
|
The
|
|||
|
.IR %sh{…}
|
|||
|
expansion replaces its content with the output of the shell commands in it. The following environment variables are used to pass informations about Kakoune's state:
|
|||
|
|
|||
|
.TP
|
|||
|
.BR kak_selection
|
|||
|
content of the main selection
|
|||
|
.TP
|
|||
|
.BR kak_selections
|
|||
|
content of the selection separated by colons, colons in the selection contents are escapted with a backslash.
|
|||
|
.TP
|
|||
|
.BR kak_selection_desc
|
|||
|
range of the main selection, represented as anchor,cursor; anchor and cursor are in this format: line.column
|
|||
|
.TP
|
|||
|
.BR kak_selections_desc
|
|||
|
range of the selecations separated by colons
|
|||
|
.TP
|
|||
|
.BR kak_bufname
|
|||
|
name of the current buffer
|
|||
|
.TP
|
|||
|
.BR kak_buffile
|
|||
|
full path of the file or same as kak_bufname when there’s no associated file
|
|||
|
.TP
|
|||
|
.BR kak_buflist
|
|||
|
the current buffer list, each buffer seperated by a colon
|
|||
|
.TP
|
|||
|
.BR kak_timestamp
|
|||
|
timestamp of the current buffer, the timestamp is an integer value which is incremented each time the buffer is modified.
|
|||
|
.TP
|
|||
|
.BR kak_runtime
|
|||
|
directory containing the kak binary
|
|||
|
.TP
|
|||
|
.BR kak_opt_<name>
|
|||
|
value of option
|
|||
|
.IR <name>
|
|||
|
.TP
|
|||
|
.BR kak_reg_<r>
|
|||
|
value of register
|
|||
|
.IR <r>
|
|||
|
.TP
|
|||
|
.BR kak_socket
|
|||
|
filename of session socket (/tmp/kak-<session>)
|
|||
|
.TP
|
|||
|
.BR kak_session
|
|||
|
name of the current session
|
|||
|
.TP
|
|||
|
.BR kak_client
|
|||
|
name of current client
|
|||
|
.TP
|
|||
|
.BR kak_cursor_line
|
|||
|
line of the end of the main selection
|
|||
|
.TP
|
|||
|
.BR kak_cursor_column
|
|||
|
column of the end of the main selection (in byte)
|
|||
|
.TP
|
|||
|
.BR kak_cursor_char_column
|
|||
|
column of the end of the main selection (in character)
|
|||
|
.TP
|
|||
|
.BR kak_window_width
|
|||
|
width of the current kakoune window
|
|||
|
.TP
|
|||
|
.BR kak_window_height
|
|||
|
height of the current kakoune window
|
|||
|
.TP
|
|||
|
.BR kak_hook_param
|
|||
|
filtering text passed to the currently executing hook
|
|||
|
.TP
|
|||
|
.BR kak_client_env_<name>
|
|||
|
value of the
|
|||
|
.IR <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
|
|||
|
|
|||
|
.SS Markup strings
|
|||
|
In certain contexts, Kakoune can take a markup string, which is a string containing formatting informations.
|
|||
|
In these strings, the {facename} 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 preceeds a '{' character shall be escaped as well ('\\\\')
|