zsh 5.4

Zsh is an interactive Unix shell similar to the well-known Korn shell, with adaptations from bash and tcsh. It provides a powerful scripting language with loadable extension modules, a bash compatibility mode, an advanced command line interface, a session-shared history, spelling correction, adaptable line editing, powerful filename matching, programmable command completion with support for most common Unix uilities.

Tags c shell command-line zsh system-shell ksh
License MITL
State mature

Recent Releases

5.407 May 2017 19:05 minor documentation: The 'exec' and 'command' precommand modifiers, and options to them, are Now parsed after parameter expansion. Previously, both the modifier and Any options to it were parsed between alias expansion and parameter Expansion (see zshexpn(1)), so they could neither be quoted nor be the Result of parameter expansion. Examples: 's=command; s -V ls' and ' command -V ls' now work as expected.
5.3.124 Dec 2016 02:25 minor feature: There are only minor compatibility between 5.3 and 5.3.1. It is possible to enable character width support for Unicode 9 by. Configuring with `--enable-unicode9'; this compiles in some additional Tables. At some point this support may move into a module, in which Case the configure option will be changed to cause the module to be Permanently loaded. This option is not useful unless your terminal also Supports Unicode 9. The new word modifier ':P' computes the physical path of the argument. It is different from the existing ':a' modifier which always resolves '/before/here/../after' to '/before/after', and differs from the. Existing ':A' modifier which resolves symlinks only after 'here/..' is Removed, even when /before/here is itself a symbolic link. It is Recommended to review uses of ':A' and, if appropriate, convert them to ':P' as soon as compatibility with 5.2 is no longer a requirement. The output of "typeset -p" uses "export" commands or the "-g" option. For parameters that are not local to the current scope. Previously, All output was in the form of "typeset" commands, never using "-g". vi-repeat-change can repeat user-defined widgets if the widget calls. Zle -f vichange. The parameter registers now makes the contents of vi register buffers. Available to user-defined widgets. New vi-up-case and vi-down-case builtin widgets bound to gU/gu (or U/u. in visual mode) for doing case conversion. A new select-word-match function provides vim-style text objects with. Configurable word boundaries using the existing match-words-by-style Mechanism. Support for the conditional expression -v var to test if a. Variable is set for compatibility with other shells. The print and printf builtins have a new option -v to assign the output. to a variable. This is for bash compatibility but with the additional Feature that, for an array, a separate element is used each time the Format is reused. New x: syntax in completion match specifications make it
5.324 Aug 2016 03:15 minor feature: The new word modifier ':P' computes the physical path of the argument. It is different from the existing ':a' modifier which always resolves '/before/here/../after' to '/before/after', and differs from the. Existing ':A' modifier which resolves symlinks only after 'here/..' is Removed, even when /before/here is itself a symbolic link. It is Recommended to review uses of ':A' and, if appropriate, convert them to ':P' as soon as compatibility with 5.2 is no longer a requirement.
5.1.113 Sep 2015 03:18 minor bugfix: 5.1.1 is primarily a release; however, a few minor features were Added. The ZLE variables YANK_ACTIVE, YANK_START and YANK_END have been added. And are useful for managing highlighting. The zsh-specific pattern match range tests have been supplemented with. :INCOMPLETE: and :INVALID: to help detect the state of partially. Read multibyte character strings.
5.104 Sep 2015 17:45 major feature: The builtins declare, export, local, readonly and typeset now have corresponding reserved words. When used in this form, the builtin syntax is extended so that assignments following the reserved word are treated similarly to assignments that appear at the start of the command line. For example, local scalar=`echo one word` array=(several words). creates a local "scalar" containing the text "one word" and an array "array" containing the words "several" "words". The print builtin has new options -x and -X to expand tabs. Several new command completions and numerous updates to others. Options to "fc" to segregate internal and shared history. All emulations including "sh" use multibyte by default; several repairs to multibyte handling. ZLE supports "bracketed paste" mode to avoid interpreting pasted newlines as accept-line. Pastes can be highlighted for visibility and to make it more obvious whether accept-line has occurred. Improved (though still not perfect) POSIX compatibility for getopts builtin when POSIX_BUILTINS is set. New setopt APPEND_CREATE for POSIX-compatible NO_CLOBBER behavior. Completion of date values now displays in a calendar format when the complist module is available. Controllable by zstyle. New parameter UNDO_LIMIT_NO for more control over ZLE undo repeat. Several repairs/improvements to the contributed narrow-to-region ZLE function. Many changes to child-process and signal handling to eliminate race conditions and avoid deadlocks on descriptor and memory management. New builtin sysopen in zsh/system module for detailed control of file descriptor modes.
5.0.708 Oct 2014 17:00 minor feature: README: update description of integer import problem. When backgrounding a pipeline, close all pipe descriptors in the parent. Fix longstanding anonoymous function corruption of "complex" state that allowed complex wordcode to be passed to execsimple(), causing crash. Fix ksh autoloads with redirections on function definitions. Handle redirections for multiple named functions.
5.0.628 Aug 2014 23:49 minor feature: New prompt expansions, new operators for array zipping, globbing in conditionals with EXTENDED_GLOB. Also contains bug fixes and improved completion functions.