Changelog
To control the startup info message, see :doc options startup-info
This changelog contains major and/or breaking changes to Kakoune between released versions.
1. Development Version
-
FocusIn/FocusOutevents on suspend
2. Kakoune 2025.06.03
-
Expose env vars that are mentioned in the arguments passed to shell expansions
-
Support for colored double underlines
-
git applycan now operate on selected changes in the current buffer’s file (useful for quick (un)staging and reverting) -
exec/eval -clientswitch accepts '*' for all clients and comma separated list of client names.
3. Kakoune 2024.05.18
-
Fixed tests on Alpine Linux and *BSD
4. Kakoune 2024.05.09
-
flag-lines -afterswitch to display text after the line -
shell-script-candidatescompletion now runs the script asynchronously while displaying and updating results live. -
%val{window_range}elements are now emitted as different strings -
+only duplicates identical selections a single time to avoid surprising and slow exponential growth in the number of selections. -
daemonize-sessioncommand makes it possible to convert the current session to a daemon one (which will not exit on last client disconnecting) -
View mode commands and mouse scrolling no longer change selections when those go off-screen.
-
New commands
git apply,git blame-jump,git editandgit grep. -
git blamenow also works ingit-diffandgit-logbuffers. -
Completions provided via
shell-script-candidatesorcompletersare no longer sorted if the typed text is empty. -
The
terminalalias has been replaced with a command that selects terminal program and placement based on windowing options. -
localscopes incommandsandevaluate-commands.
5. Kakoune 2023.08.08
-
Fix compilation errors on FreeBSD and MacOS using clang
6. Kakoune 2023.07.29
-
<a-u>and<a-U>now undo/redo selection changes; the previous meaning of moving in history tree has been moved to<c-j>and<c-k> -
%exp{…}expansions provide flexible quoting for expanded strings (as double quoted strings) -
<c-g>cancels the current operation and goes back to the main event loop, this provides an escape hatch when Kakoune seems to hang due to a costly operation -
show-matching -previoushighlighter will fall back onto the character preceeding the cursor
7. Kakoune 2022.10.31
-
complete-command(See:doc commands configuring-command-completion) -
p,P,!and<a-!>commands now select the inserted text -
xnow just extends the selection to contain full lines (as<a-x>did)<a-x>trims partial lines from the selection (as<a-X>did) -
User mappings is now bound to
<space>while keeping/removing main selection moved to,and<a-,> -
Prompt history registers
%reg{colon},%reg{slash}and%reg{pipe}now have reverse chronological order -
Executing user mode mappings no longer adds to prompt history registers.
8. Kakoune 2021.11.07
-
Support for curly and separately colored underlines (undocumented in 2021.10.28)
-
Fixes for terminal flickering
-
Fixes for command and response fifo corner cases
9. Kakoune 2021.10.28
-
gandvdo not auto lower case the next key, soGLneeds to be manually mapped toGlfor example.
10. Kakoune 2021.08.28
-
command and response fifo support (See
:doc expansions command-and-response-fifo) -
Shell expansions only trim the last trailing newline instead of all of them to make is possible to losslessly pass text through
%sh{…}. -
set-option -removesupport for subtracting/removing from option values -
Menu completions such as command name completion are now auto-inserted on space
-
write -atomicwas replaced withwrite -method [replace|overwrite]to make both write methods available explicitly -
write <filename>will fail if the given filename already exists and is a regular file. Use the-forceswitch to override that behaviour.
11. Kakoune 2020.09.01
-
The
replandsend-textaliases have been renamed respectively intorepl-newandrepl-send-text. -
Daemon mode (
-dswitch) does not fork anymore. -
Replace NCursesUI with a custom terminal UI implementation
12. Kakoune 2020.08.04
-
Introduce
Userhook support. -
The
boldanditalicfaces are no longer built-in. Highlighters are expected to use face attributes (+band+i, respectively) to decorate text. -
The
lint-enablecommand no longer needs to be called to display linting errors. Thelint-disablecommand was renamed intolint-hide-diagnostics. -
The
+<length>part of arange-specshighlighter consistently refers to the length of the target range. -
clients stdin is transferred to the server, making it possible to pipe into
kak -c <session> -
Faces can have an alpha channel, specified using the
rgba:RRGGBBAAformat. -
replace-ranges highlighter now support empty and multi-lines ranges
-
%val{…}now expands to list of strings,$kak_quoted_…now work as expected with these. -
*SetOptionhooks filter string will contain a value only for options of int/str/bool types to avoid performance issue with generating those on more complex option types.
13. Kakoune 2020.01.16
-
Expose history tree through
$kak_historyand$kak_uncommitted_modifications -
InsertCompletionHideparameter is the list of inserted ranges
14. Kakoune 2019.12.10
-
Arrow keys and
<home>,<end>are not normal mode commands anymore but default key mappings. -
ModeChangehook parameter now takespush:orpop:prefix,InsertBegin,InsertEnd,NormalBeginandNormalEndwere removed. -
-verbatimswitch inevaluate-commandsfor perfect command forwarding to another context. -
WrapMarkerface used bywrap -markerhighlighter -
infosupports markup with the-markupswitch -
rename-buffergained-fileand-scratchswitches to support converting buffer types.
15. Kakoune 2019.07.01
-
Re-organized bundled script files directory hierarchy.
-
Introduced helpers to write/read from file in scripts with
%file{…}expansion andecho -to-file <filename>. -
Added
ClientCreateandClientClosehooks -
edit -scratchwith no buffer name will create a new scratch buffer with a unique autogenerated name. -
info -placementis nowinfo -styleand supportsmenuandmodaladditional styles. -
completionsoption typedocstringare now arbitrary kakoune commands that are run on item select. -
InsertCompletionSelecthook has been removed ascompletionscommands now provides a similar feature. -
Introduced a module system using the
provide-moduleandrequire-modulecommands that allows for lazily loading language support files with dependency resolution. -
Added a new hook
ModuleLoadedwhich is run after a module is loaded, allowing for module specific configuration. -
Shell quoting of lists is not automatic anymore,
$kak_quoted_…makes it opt-in, and works for all option types. -
Lower case function key syntax is not accepted anymore,
<f1>should be converted to<F1>.
16. Kakoune 2019.01.20
-
auto_completehas been renamed toautocompletefor more consistency. -
Start of a builtin key parser in the ncurses ui bypassing the ncurses one. Can be favored by setting the ui option
ncurses_builtin_key_parsertotrue. -
Right clicks extend the current selection, the control modifier allows merging all the selections after extension.
-
The
regexhighlighter now supports named capture groups to ease readability.
17. Kakoune 2018.10.27
-
remove-hooks<group> argument is now a regex and removes all hooks whose group matches it. -
exclusiveface attribute (e) has been replaced with more granularfinal foreground(f),final background(g), andfinal attributes(a), or the three combined asfinal(F). Semantics changed slightly as those attributes apply to the existing face as well (a final face will not get modified by a following face if that following face does not have the final attribute itself. -
<a-m>aka "merge consecutive selections" has been moved to<a-_>. The new<a-m>and<a-M>are now symmetrical withmandM. Those commands select (or extend) to the matching char backwards. -
define-commandswitches-shell-completionand-shell-candidateshave been renamed to-shell-script-completionand-shell-script-candidatesto make way for a new-shell-completionwhich completes like the shell (shell command name then filename). -
asciidocis not a dependency anymore, the last file that required it (Kakoune’s manpage) has been converted to troff format.
18. Kakoune 2018.09.04
This version contains a significant overhaul of various Kakoune features that can break user configuration. This was a necessary change to make Kakoune command model cleaner and more robust.
-
%sh{…}strings are not reparsed automatically anymore, they need to go through an explicitevaluate-commands -
The
-allow-overrideswitch fromdefine-commandhas been renamed-override. -
The search prompt uses buffer word completion so that fuzzy completion can be used to quickly search for a buffer word.
-
The
wraphighlighter can accept a new-marker <marker_text>switch. -
The command line syntax has changed to support robust escaping.
-
%sh{…}is not expanded to multiple tokens automatically anymore, to evaluate its output as multiple tokens/commands, use theevaluate-commandscommand:------------------------------------------------------------- evaluate-commands %sh{ echo "first command; second command" } ------------------------------------------------------------- -
Escaping of
'in'…'and"and%in"…"strings is done by doubling up ('',""and%%) instead of using a backslash -
Bare words escaping has been tweaked.
See xref:./command-parsing.adoc[`:doc command-parsing`].
-
-
Various lists (options, registers…) in Kakoune are now written using the command line syntax:
-
set-registernow take an arbitrary number of parameters and sets the register to multiple strings.%regexpands to a list of strings. -
the
$kak_reg_*environment variable is now a list,$kak_main_reg_*provides the previous behaviour. -
%optexpands list options as list of strings. -
selection descs are whitespaces separated instead of
:separated
-
-
Highlighters syntax has changed to permit explicit naming and remove highlighter specific name parameters (such as for the group highlighter)
add-highlighter <path>/<name> <type> <params>is the new syntax. -
Regions highlighters have been overhauled and are now specified with a sequence of commands instead of a single one:
------------------------------------------------------------------ add-highlighter <path>/<name> regions add-highlighter <path>/<name>/<region name> region <begin> <end> \ <type> <params> ------------------------------------------------------------------
The recursion regex is opt-in through a `-recurse <recurse>` flag.
They also are not necessarily groups anymore, a region can directly apply any other highlighter
See xref:./highlighters.adoc[`:doc highlighters`]
-
Highlighter type names have been unified, types that used
_as word separators, such asshow_whitespacesare now using-(show-whitespace). -
aon end of line is not treated specially anymore, it will start inserting on the next character, which will be the first character of the next line. -
autoshowcomploptions has been renamedauto_completeand is now aflags(insert|prompt)option, allowing more granular configuration of when the completions should be displayed automatically. -
Prompt editing shortcuts have been changed to match readline.
19. Kakoune 2018.04.13
First official Kakoune release.