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
resolve
builtin 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-completer
has 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:-matcher
to$edit:completion:matcher
. -
The
joins
command no longer ignores leading empty values (#616). -
The
while
special command no longer swallows exceptions (#615). -
The
finally
block of thetry
special 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
\r
to the terminal before suspending the editor (#629; thanks to @krader1961 for the analysis!). -
New
edit:history:fast-forward
command to import command history after the current session started. -
The completion mode no longer completes the longest common prefix (#637).
-
New
store:del-dir
command for deleting directory history. -
Add chdir hooks
$before-chdir
and$after-chdir
. -
Location mode now supports the notion of workspaces (#643).
-
The output of
elvish -buildinfo -json
is now actually valid JSON (#682). -
New
styled
andstyled-segment
commands (thanks to @fehnomenal!) (#520, #674). -
New builtin
$notify-bg-job-success
variable for suppressing notification of the success of background jobs (thanks to @iwoloschin!) (#689). -
New builtin
$num-bg-jobs
variable for tracking number of background jobs (#692). -
The
edit:complete-getopt
command now supports supplying a description for arguments of options (thanks to @zzamboni!) (#693). -
Complex candidates built with
edit:complex-candidate
are now indexable (thanks to @zzamboni!) (#691). -
New
-norc
flag for skippingrc.elv
(thanks to @iwoloschin!) (#707). -
Elvish now guards against commands messing up terminal attributes (#706).