Version 0.12 has been released six months after 0.11, bringing many new features and bugfixes.
As usual, prebuilt binaries can be found in get.
Breaking Changes
-
The
shared:namespace has been removed. -
Line continuations now use backslashes instead of backquotes, in line with POSIX syntax.
-
The
resolvebuiltin now returns a string. -
The variables
$edit:loc-{pinned,hidden}have been moved into theedit:location:namespace, now$edit:location:{pinned,hidden} -
The variable
$edit:arg-completerhas been moved to$edit:completion:arg-completer.
Notable Fixes and Enhancements
-
The Elvish package manager has landed (thanks to @zzamboni!).
-
A
str:module has been added (#576). -
Styling of the web interface (
elvish -web) has been reworked, now featuring a dark theme as well as a light theme. -
Namespaces can now be accessed by as variables with a trailing
:in the name (e.g. theedit:namespace variable can be accessed as$edit:). These variables can be indexed like maps (#492, (#631)). -
Support for urxvt-style key sequences has been improved (#579).
-
Numbers can now be used as normal variable names (e.g.
$1). -
The interactive namespace can now be built dynamically by assigning to the
$-exports-variable inrc.elv(#613). -
The variable for customizing matchers in completion mode has graduated from
$edit:-matcherto$edit:completion:matcher. -
The
joinscommand no longer ignores leading empty values (#616). -
The
whilespecial command no longer swallows exceptions (#615). -
The
finallyblock of thetryspecial command no longer swallows exceptions (#619). -
A set of builtin commands for manipulating environment variables -
has-env,get-env,set-env,unset-env- has been added. -
The prompts are now rendered asynchronously. The appearance of stale prompts can be customized.
-
Experimental support for customizing the eagerness of prompts.
-
Elvish now writes a
\rto the terminal before suspending the editor (#629; thanks to @krader1961 for the analysis!). -
New
edit:history:fast-forwardcommand to import command history after the current session started. -
The completion mode no longer completes the longest common prefix (#637).
-
New
store:del-dircommand for deleting directory history. -
Add chdir hooks
$before-chdirand$after-chdir. -
Location mode now supports the notion of workspaces (#643).
-
The output of
elvish -buildinfo -jsonis now actually valid JSON (#682). -
New
styledandstyled-segmentcommands (thanks to @fehnomenal!) (#520, #674). -
New builtin
$notify-bg-job-successvariable for suppressing notification of the success of background jobs (thanks to @iwoloschin!) (#689). -
New builtin
$num-bg-jobsvariable for tracking number of background jobs (#692). -
The
edit:complete-getoptcommand now supports supplying a description for arguments of options (thanks to @zzamboni!) (#693). -
Complex candidates built with
edit:complex-candidateare now indexable (thanks to @zzamboni!) (#691). -
New
-norcflag for skippingrc.elv(thanks to @iwoloschin!) (#707). -
Elvish now guards against commands messing up terminal attributes (#706).