README: better use of asciidoc features
This commit is contained in:
parent
6f6f10c83d
commit
a7e807f773
154
README.asciidoc
154
README.asciidoc
|
@ -148,24 +148,24 @@ multiselection. Each selection have it's own captures, or yank buffer.
|
||||||
Basic Commands
|
Basic Commands
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Commands are entered using *:*.
|
Commands are entered using +:+.
|
||||||
|
|
||||||
* e[dit] <filename> [<line> [<column>]]: open buffer on file, go to given
|
* +e[dit] <filename> [<line> [<column>]]+: open buffer on file, go to given
|
||||||
line and column. If file is already opened, just switch to this file.
|
line and column. If file is already opened, just switch to this file.
|
||||||
use edit! to force reloading.
|
use edit! to force reloading.
|
||||||
* w[rite] [<filename>]: write buffer to <filename> or use it's name if
|
* +w[rite] [<filename>]+: write buffer to <filename> or use it's name if
|
||||||
filename is not given.
|
filename is not given.
|
||||||
* q[uit]: exit Kakoune, use quit! to force quitting even if there is some
|
* +q[uit]+: exit Kakoune, use quit! to force quitting even if there is some
|
||||||
unsaved buffers remaining.
|
unsaved buffers remaining.
|
||||||
* wq: write current buffer and quit
|
* +wq+: write current buffer and quit
|
||||||
* b[uffer] <name>: switch to buffer <name>
|
* +b[uffer] <name>+: switch to buffer <name>
|
||||||
* d[el]b[uf] [<name>]: delete the buffer <name>
|
* +d[el]b[uf] [<name>]+: delete the buffer <name>
|
||||||
* source <filename>: execute commands in <filename>
|
* +source <filename>+: execute commands in <filename>
|
||||||
* runtime <filename>: execute commands in <filename>, <filename>
|
* +runtime <filename>+: execute commands in <filename>, <filename>
|
||||||
is relative to kak executable path.
|
is relative to kak executable path.
|
||||||
* exec <keys>: execute <keys> as if pressed in normal mode.
|
* +exec <keys>+: execute <keys> as if pressed in normal mode.
|
||||||
* echo <text>: show <text> in status line
|
* +echo <text>+: show <text> in status line
|
||||||
* set[bwg] <option> <value>: set <option> to <value> in *b*uffer, *w*indow
|
* +set[bwg] <option> <value>+: set <option> to <value> in *b*uffer, *w*indow
|
||||||
or *g*lobal scope.
|
or *g*lobal scope.
|
||||||
|
|
||||||
String syntax
|
String syntax
|
||||||
|
@ -176,40 +176,47 @@ if you want to give parameters with spaces, you should quote them.
|
||||||
|
|
||||||
Kakoune support three string syntax:
|
Kakoune support three string syntax:
|
||||||
|
|
||||||
* "strings" and 'strings': classic strings, use \' or \" to escape the
|
* +"strings" and \'strings\'+: classic strings, use \' or \" to escape the
|
||||||
separator.
|
separator.
|
||||||
|
|
||||||
* %{strings}: these strings are very usefull when entering commands, first the '{' and '}'
|
* +%\{strings\}+: these strings are very usefull when entering commands
|
||||||
delimiter is configurable: you can use any non alphanumeric character.
|
|
||||||
like %[string], %<string>, %(string), %~string~ or %!string!...
|
- the '{' and '}' delimiter are configurable: you can use any non
|
||||||
if the character following the % is one of {[(<, then the closing one is
|
alphanumeric character. like %[string], %<string>, %(string), %~string~
|
||||||
the matching }])>, and these delimiters in the string need not to be
|
or %!string!...
|
||||||
escaped if the contained delimiters are balanced.
|
- if the character following the % is one of {[(<, then
|
||||||
for example %{ roger {}; } is a valid string.
|
the closing one is the matching }])>, and these delimiters in the string
|
||||||
|
need not to be escaped if the contained delimiters are balanced.
|
||||||
|
for example +%{ roger {}; }+ is a valid string.
|
||||||
|
|
||||||
Highlighters
|
Highlighters
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Manipulation of the displayed text is done through highlighters, which can be added
|
Manipulation of the displayed text is done through highlighters, which can be added
|
||||||
or removed with the command :addhl <highlighter_name> <highlighter_parameters...>
|
or removed with the command
|
||||||
and :rmhl <highlighter_id>
|
-----------------------------------------------------
|
||||||
|
:addhl <highlighter_name> <highlighter_parameters...>
|
||||||
|
-----------------------------------------------------
|
||||||
|
and
|
||||||
|
----------------------
|
||||||
|
:rmhl <highlighter_id>
|
||||||
|
----------------------
|
||||||
|
|
||||||
existing highlighters are:
|
existing highlighters are:
|
||||||
|
|
||||||
* *highlight_selections*: used to make current selection visible
|
* +highlight_selections+: used to make current selection visible
|
||||||
* *expand_tabs*: expand tabs to next 8 multiple column (to make configurable)
|
* +expand_tabs+: expand tabs to next 8 multiple column (to make configurable)
|
||||||
* *number_lines*: show line numbers
|
* +number_lines+: show line numbers
|
||||||
* *group*: highlighter group, containing other highlighters. takes one
|
* +group+: highlighter group, containing other highlighters. takes one
|
||||||
parameter, <group_name>. useful when multiple highlighters work
|
parameter, <group_name>. useful when multiple highlighters work
|
||||||
together and need to be removed as one. Adding and removing from
|
together and need to be removed as one. Adding and removing from
|
||||||
a group can be done using
|
a group can be done using
|
||||||
:addhl -group <group> <highlighter_name> <highlighter_parameters...>
|
`:addhl -group <group> <highlighter_name> <highlighter_parameters...>`
|
||||||
:rmhl -group <group> <highlighter_name>
|
`:rmhl -group <group> <highlighter_name>`
|
||||||
* *regex*: highlight a regex, takes the regex as first parameter, followed by
|
* +regex+: highlight a regex, takes the regex as first parameter, followed by
|
||||||
any number of color spec parameters.
|
any number of color spec parameters.
|
||||||
color spec format is: <capture_id>:<fg_color>[,<bg_color>]
|
color spec format is: <capture_id>:<fg_color>[,<bg_color>]
|
||||||
For example:
|
For example: `:addhl regex //(\h+TODO:)?[^\n]+ 0:cyan 1:yellow,red`
|
||||||
:addhl regex //(\h+TODO:)?[^\n]+ 0:cyan 1:yellow,red
|
|
||||||
will highlight C++ style comments in cyan, with an eventual
|
will highlight C++ style comments in cyan, with an eventual
|
||||||
'TODO:' in yellow on red background.
|
'TODO:' in yellow on red background.
|
||||||
|
|
||||||
|
@ -217,25 +224,31 @@ Filters
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Filters can be installed to interact with buffer modifications. They can be
|
Filters can be installed to interact with buffer modifications. They can be
|
||||||
added or removed with :addfilter <filter_name> <filter_parameters...> and
|
added or removed with
|
||||||
|
-----------------------------------------------
|
||||||
|
:addfilter <filter_name> <filter_parameters...>
|
||||||
|
-----------------------------------------------
|
||||||
|
and
|
||||||
|
---------------------
|
||||||
:rmfilter <filter_id>
|
:rmfilter <filter_id>
|
||||||
|
---------------------
|
||||||
|
|
||||||
exisiting filters are:
|
exisiting filters are:
|
||||||
|
|
||||||
* *preserve_indent*: insert previous line indent when inserting a newline
|
* +preserve_indent+: insert previous line indent when inserting a newline
|
||||||
* *cleanup_whitespaces*: remove trailing whitespaces on the previous line
|
* +cleanup_whitespaces+: remove trailing whitespaces on the previous line
|
||||||
when inserting an end-of-line.
|
when inserting an end-of-line.
|
||||||
* *expand_tabulations*: insert spaces instead of tab characters
|
* +expand_tabulations+: insert spaces instead of tab characters
|
||||||
* *group*: same as highlighters group
|
* +group+: same as highlighters group
|
||||||
|
|
||||||
Hooks
|
Hooks
|
||||||
-----
|
-----
|
||||||
|
|
||||||
commands can be registred to be executed when certain events arise.
|
commands can be registred to be executed when certain events arise.
|
||||||
to register a hook, use the hook command.
|
to register a hook, use the hook command.
|
||||||
|
------------------------------------------------------
|
||||||
:hook <scope> <hook_name> <filtering_regex> <commands>
|
:hook <scope> <hook_name> <filtering_regex> <commands>
|
||||||
|
------------------------------------------------------
|
||||||
<scope> can be either global, buffer or window, the scope are hierarchical,
|
<scope> can be either global, buffer or window, the scope are hierarchical,
|
||||||
meaning that a Window calling a hook will execute it's own, the buffer ones
|
meaning that a Window calling a hook will execute it's own, the buffer ones
|
||||||
and the global ones.
|
and the global ones.
|
||||||
|
@ -245,8 +258,9 @@ called.
|
||||||
|
|
||||||
for example, to automatically use line numbering with .cc files,
|
for example, to automatically use line numbering with .cc files,
|
||||||
use the following command:
|
use the following command:
|
||||||
|
-----------------------------------------------------
|
||||||
:hook global WinCreate .*\.cc %{ addhl number_lines }
|
:hook global WinCreate .*\.cc %{ addhl number_lines }
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
Shell expansion
|
Shell expansion
|
||||||
---------------
|
---------------
|
||||||
|
@ -258,15 +272,17 @@ for example: %sh{ ls } is replaced with the output of the ls command.
|
||||||
|
|
||||||
Some of kakoune state is available through environment variables:
|
Some of kakoune state is available through environment variables:
|
||||||
|
|
||||||
* *kak_selection*: content of the last selection
|
* +kak_selection+: content of the last selection
|
||||||
* *kak_bufname*: name of the current buffer
|
* +kak_bufname+: name of the current buffer
|
||||||
* *kak_runtime*: directory containing the kak binary
|
* +kak_runtime+: directory containing the kak binary
|
||||||
* *kak_opt_name*: value of option name
|
* +kak_opt_name+: value of option name
|
||||||
* *kak_reg_x*: value of register x
|
* +kak_reg_x+: value of register x
|
||||||
|
|
||||||
for example you can print informations on the current file in the status
|
for example you can print informations on the current file in the status
|
||||||
line using:
|
line using:
|
||||||
|
-------------------------------
|
||||||
:echo %sh{ ls -l $kak_bufname }
|
:echo %sh{ ls -l $kak_bufname }
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
Register and Option expansion
|
Register and Option expansion
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
@ -275,40 +291,43 @@ Similar to shell expansion, register contents and options values can be
|
||||||
accessed through %reg{<register>} and %opt{<option>} syntax.
|
accessed through %reg{<register>} and %opt{<option>} syntax.
|
||||||
|
|
||||||
for example you can display last search pattern with
|
for example you can display last search pattern with
|
||||||
|
-------------
|
||||||
:echo %reg{/}
|
:echo %reg{/}
|
||||||
|
-------------
|
||||||
|
|
||||||
Defining Commands
|
Defining Commands
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
new commands can be defined using the *def* command.
|
new commands can be defined using the +def+ command.
|
||||||
|
------------------------------
|
||||||
:def <command_name> <commands>
|
:def <command_name> <commands>
|
||||||
|
------------------------------
|
||||||
<commands> is a string containing the commands to execute
|
<commands> is a string containing the commands to execute
|
||||||
|
|
||||||
def can also takes some flags:
|
def can also takes some flags:
|
||||||
* *-env-params*: pass parameters given to commands in the environement as
|
|
||||||
|
* +-env-params+: pass parameters given to commands in the environement as
|
||||||
kak_paramN with N the parameter number
|
kak_paramN with N the parameter number
|
||||||
* *-shell-params*: pass parameters given to commands as positional parameters
|
* +-shell-params+: pass parameters given to commands as positional parameters
|
||||||
to any shell expansions used in the command.
|
to any shell expansions used in the command.
|
||||||
* *-file-completion*: try file completion on any parameter passed
|
* +-file-completion+: try file completion on any parameter passed
|
||||||
to this command
|
to this command
|
||||||
* *-shell-completion*: following string is a shell command which takes
|
* +-shell-completion+: following string is a shell command which takes
|
||||||
parameters as positional params and output one
|
parameters as positional params and output one
|
||||||
completion candidate per line.
|
completion candidate per line.
|
||||||
* *-allow-override*: allow the new command to replace an exisiting one
|
* +-allow-override+: allow the new command to replace an exisiting one
|
||||||
with the same name.
|
with the same name.
|
||||||
|
|
||||||
Using shell expansion permits to define complex commands or to access
|
Using shell expansion permits to define complex commands or to access
|
||||||
kakoune state:
|
kakoune state:
|
||||||
|
------------------------------------------------------
|
||||||
:def print_selection %{ echo %sh{ ${kak_selection} } }
|
:def print_selection %{ echo %sh{ ${kak_selection} } }
|
||||||
|
------------------------------------------------------
|
||||||
Some helper commands can be used to define composite commands:
|
Some helper commands can be used to define composite commands:
|
||||||
|
|
||||||
* menu <label1> <commands1> <label2> <commands2>...: display a menu using
|
* +menu <label1> <commands1> <label2> <commands2>...+: display a menu using
|
||||||
labels, the selected label's commands are executed.
|
labels, the selected label's commands are executed.
|
||||||
* try <commands> catch <on_error_commands>: prevent an error in <commands>
|
* +try <commands> catch <on_error_commands>+: prevent an error in <commands>
|
||||||
from aborting the whole commands execution, execute <on_error_commands>
|
from aborting the whole commands execution, execute <on_error_commands>
|
||||||
instead.
|
instead.
|
||||||
|
|
||||||
|
@ -318,10 +337,13 @@ not that useful in this context.
|
||||||
FIFO Buffer
|
FIFO Buffer
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
the *edit* command can take a -fifo parameter:
|
the +edit+ command can take a -fifo parameter:
|
||||||
|
|
||||||
|
-----------------------------------
|
||||||
:edit -fifo <filename> <buffername>
|
:edit -fifo <filename> <buffername>
|
||||||
in this case, a buffer named <buffername> is created which reads its content
|
-----------------------------------
|
||||||
from <filename>. When filename is appended to, the buffer is automatically
|
in this case, a buffer named +<buffername>+ is created which reads its content
|
||||||
|
from +<filename>+. When filename is appended to, the buffer is automatically
|
||||||
updated.
|
updated.
|
||||||
This is very useful for running some commands asynchronously while displaying
|
This is very useful for running some commands asynchronously while displaying
|
||||||
their result in a buffer. See rc/make.kak and rc/grep.kak for examples.
|
their result in a buffer. See rc/make.kak and rc/grep.kak for examples.
|
||||||
|
@ -333,23 +355,25 @@ The kakrc file next to the kak binary (in the src directory for the moment)
|
||||||
is a list of kak commands to be executed at startup.
|
is a list of kak commands to be executed at startup.
|
||||||
|
|
||||||
The current behaviour is to execute local user commands in the file
|
The current behaviour is to execute local user commands in the file
|
||||||
~/.config/kak/kakrc and in all files in ~/.config/kak/autoload directory
|
$HOME/.config/kak/kakrc and in all files in $HOME/.config/kak/autoload
|
||||||
|
directory
|
||||||
|
|
||||||
Place links to the files in src/rc/ in your autoload directory in order to
|
Place links to the files in src/rc/ in your autoload directory in order to
|
||||||
execute them on startup, or use the runtime command (which sources relative
|
execute them on startup, or use the runtime command (which sources relative
|
||||||
to the kak binary) to load them on demand.
|
to the kak binary) to load them on demand.
|
||||||
|
|
||||||
Existing commands files are:
|
Existing commands files are:
|
||||||
|
|
||||||
* *rc/kakrc.kak*: provides kak commands files autodetection and highlighting
|
* *rc/kakrc.kak*: provides kak commands files autodetection and highlighting
|
||||||
* *rc/cpp.kak*: provides c/c++ files autodetection and highlighting and the :alt
|
* *rc/cpp.kak*: provides c/c++ files autodetection and highlighting and the +alt+
|
||||||
command for switching from c/cpp file to h/hpp one.
|
command for switching from c/cpp file to h/hpp one.
|
||||||
* *rc/asciidoc.kak*: provides asciidoc files autodetection and highlighting
|
* *rc/asciidoc.kak*: provides asciidoc files autodetection and highlighting
|
||||||
* *rc/diff.kak*: provides patches/diff files autodetection and highlighting
|
* *rc/diff.kak*: provides patches/diff files autodetection and highlighting
|
||||||
* *rc/git.kak*: provides various git format highlighting (commit message editing,
|
* *rc/git.kak*: provides various git format highlighting (commit message editing,
|
||||||
interactive rebase)
|
interactive rebase)
|
||||||
* *rc/make.kak*: provides the :make and :errjump commands along with highlighting
|
* *rc/make.kak*: provides the +make+ and +errjump+ commands along with highlighting
|
||||||
for compiler output.
|
for compiler output.
|
||||||
* *rc/grep.kak*: provides the :grep and :gjump commands along with highlighting
|
* *rc/grep.kak*: provides the +grep+ and +gjump+ commands along with highlighting
|
||||||
for grep output.
|
for grep output.
|
||||||
* *rc/global.kak*: provides the :tag command to jump on a tag definition using
|
* *rc/global.kak*: provides the +tag+ command to jump on a tag definition using
|
||||||
gnu global tagging system.
|
gnu global tagging system.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user