summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS616
1 files changed, 616 insertions, 0 deletions
diff --git a/NEWS b/NEWS
new file mode 100644
index 000000000..905f9456b
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,616 @@
+-------------------------------------
+CHANGES FROM PREVIOUS VERSIONS OF ZSH
+-------------------------------------
+
+Changes since zsh version 4.2.0
+-------------------------------
+
+- A new `try block' and `always block' syntax has been introduced
+ to make it easier to ensure the shell runs important tidy-up code
+ in the event of an error. It also runs after a break, continue, or
+ return, including a return forced by the ERR_RETURN option,
+ but not an exit, which is immediate). The syntax is:
+ `{' try-block-list `}' `always' `{' always-block-list `}'
+ where no newline or semicolon may appear between `}' and `always'.
+ This is compatible with all previous valid zsh syntax as an `always'
+ at that point used to be a syntax error. For example,
+ { echo Code run in current shell } always { echo Tidy-up code }
+
+- A new zle widget reset-prompt has been added to re-expand the current
+ prompt. Note that this does not take account of changes to the
+ prompt variables themselves, only the expansion of the text. The
+ same effect is now forced by a job change notification, making
+ the %j prompt escape and %(j..) ternary expression more useful.
+
+- The zftp module supports ports following the hostname in the normal suffix
+ notation, `host:port'. This requires IPv6 colon-style addresses to be
+ specified in suitably quoted square brackets, for example:
+
+ zftp open '[f000::baaa]'
+ zftp open '[f000::baaa]:ftp'
+
+ (the two are equivalent).
+
+- Special traps, those that don't correspond to signals, i.e. ZERR, DEBUG
+ and EXIT are no longer executed inside other traps. This caused
+ unnecessary confusion if, for example, both DEBUG and EXIT traps
+ were set. The new behaviour is more compatible with other shells.
+
+- New option TRAPS_ASYNC which if set allows traps to run while the
+ shell is waiting for a child process. This is the traditional zsh
+ behaviour; POSIX requires the option to be unset. In sh/ksh
+ compatibility mode the option is turned off by default and the option
+ letter -T turns it on, for compatibility with FreeBSD sh.
+
+New features between zsh versions 4.0 and 4.2
+---------------------------------------------
+
+Configuration:
+- upgraded to use autoconf post-2.50
+- improved compatibility with other shells through shell options,
+ builtin arguments and improved builtin option parsing
+
+Syntax and builtins:
+- new printf builtin
+- `+=' to append to parameters which works for scalars, arrays and (with
+ pairs) associative arrays.
+- enhanced multiple parameter `for' loops:
+ for key value in key1 value1 key2 value2 ...
+ maintaining full compatibility with POSIX syntax.
+- Suffix aliases allow the shell to run a command on a file by suffix,
+ e.g `alias -s ps=gv' makes `foo.ps' execute `gv foo.ps'. Supplied
+ function zsh-mime-setup uses existing mailcap and mime.types files
+ to set up suitable aliases. Supplied function pick-web-browser is
+ suitable for finding a browser to show .html etc. files by suffix alias.
+- new option `no_case_glob' for case-insensitive globbing.
+
+Add-on modules and functions:
+- zsh/datetime modules makes date formatting and seconds since EPOCH
+ available inside the shell.
+- zsh/net/tcp module provides builtin interface to TCP through ztcp
+ builtin. Function suite for interactive and script use with expect-style
+ pattern matching.
+- zsh/net/socket module provides zsocket builtin.
+- zcalc calculator function with full line editing.
+- builtin interface to pcre library
+- zsh/zselect module provides zselect builtin as interface to select
+ system call
+
+Completion system:
+- general improvements to command and context support, low-level functions,
+ display code.
+- in verbose mode, matches with the same description are grouped
+- highly configurable completions for values of specific parameters,
+ specific redirections for specific commands
+- support for bash completion functions (typically zsh native functions are
+ more powerful where available)
+- New completions provided for (some of these may be in later 4.0
+ releases): valgrind, tidy, texinfo, infocmp, Java classes, larch, limit,
+ locale parameters, netcat, mysqldiff, mt, lsof, elinks, ant, debchange
+ (dch), email addresses, file system types, Perforce, xsltproc.
+ Plus many others.
+
+Line editor:
+- special parameters $PREDISPLAY, $POSTDISPLAY available in function
+ widgets to configure uneditable text (for narrowing)
+- recursive editing
+- supplied widgets read-from-minibuffer, replace-string use these features
+ (more intuitive prompting and argument reading than 4.0)
+- access to killed text via $CUTBUFFER and $killring
+- supplied highly configurable word widgets forward-word-match etc., can
+ set what constitutes a word interactively or in startup script
+ (implement bash-style behaviour, replacing previous bash-* word widgets)
+- interface to incremental search via $LASTSEARCH
+- better handling of keymaps in zle and widgets
+- better support for output from user-defined widgets while zle is active
+- tetris game which runs entirely in zle
+- several other contributed widgets
+
+Local internal improvements:
+- disowned jobs are automatically restarted
+- \u and \U print escapes for Unicode
+- read -d <delimiter> allows a custom line ending.
+- read -t <timeout>.
+- line numbers in error messages and $PS4 output are more consistent
+- `=prog' expands only paths, no longer aliases for consistency
+- job display in prompts; `jobs' command output can be piped
+- prompts: new $RPROMPT2, %^, %j, %y, enhanced %{, %}, %_.
+- rand48() function in zsh/mathfunc for better randomness in arithmetic
+ (if the corresponding math library function is present)
+- $SECONDS parameter can be made floating point via `typeset -F SECONDS'
+ for better timing accuracy
+- improvements to command line history mechanism
+- job table is dynamically sized, preventing overflow (typically seen
+ previously in complex completions).
+- many bugfixes
+
+
+New features in zsh version 4.0.1
+---------------------------------
+
+Compared with 3.1.9, there are mostly incremental improvements to
+ - the new completion system --- more functions, completers, styles...
+ - the line editor
+ - handling of signals and traps
+ - the configuration system, particularly for modules
+ - Cygwin support (now essentially complete)
+ - arithmetic evaluation
+ - the zpty (pseudoterminal handling) module
+ - the test suite
+plus various bug fixes and compatibility improvements.
+
+The alias modules (zle.so as an alias for zsh/zle.so, etc.) have been
+removed; use `zmodload -A' to load modules under other names. This is
+irrelevant if you are upgrading from 3.0.
+
+Compared with the 3.0 series of releases (the last stable set), the most
+significant of a large number of improvements in the shell are:
+ - Dynamically loadable modules with hierarchical naming system
+ - Shell functions as editor functions, with much additional builtin support
+ - Incredibly rich new completion system; just needs a single
+ initialization command to provide completion for all sorts of commands
+ and contexts
+ - Associative arrays
+ - Lots of new features in parameter substitution and globbing; more
+ logical handling of nested parameter substitutions
+ - Rewritten pattern-matching (globbing) code supports approximate
+ and case-insensitive matching and backreferences
+ - Various custom modules for pty's, FTP, special parameters, etc.
+ - Rewrites of many internal parts of the code: execution code to
+ provide compilation to internal representation, pattern matching
+ - Floating point arithmetic and mathematical functions module
+ - A test suite
+ - Various new options for compatibility with this, that and the other
+See the 3.1.x changes below for more detail.
+
+New features in zsh version 3.1.8 and 3.1.9
+-------------------------------------------
+These are primarily bug-fix versions. There are only a few user-visible
+changes.
+ - Array slices ${array[a,b]} with b < a now correctly have zero length.
+
+New features in zsh version 3.1.7
+---------------------------------
+Further enhancements to new completion system:
+ - Comprehensive context-sensitive configuration via `styles', which
+ can be set by the menu-driven front end in compinstall
+ - General mechanism for setting patterns to be ignored in a completion;
+ overriding of patterns to be matched for functions
+ - New completers: _prefix to complete word before cursor, _ignored
+ to complete using words so far ignored (like $fignore but more
+ powerful), _history to complete words from shell history
+ - Multiple use of completers with different options, similarly splitting
+ of different types of completion (`tags') so they are considered with
+ different styles
+ - Many more supplied completions for standard commands which work out of
+ the box, and better handling of command line options/arguments which
+ behave in the usual way
+ - $fpath now set up to use installed functions by default; functions
+ can be loaded just by `autoload -U compinit; compinit'
+ - Much improved handling of nested quoting and nested braces
+ - New LIST_PACKED and LIST_ROWS_FIRST completion options and corresponding
+ styles
+ - compctl library separated out (frozen but still supported)
+ - User-friendly introduction available at zsh website
+ http://sunsite.auc.dk/zsh/
+
+Additions to complist listing library (coloured completion and menu
+selection):
+ - Listings can be shown page by page (are by default for new completion)
+ - Menu selection allows full up and down scrolling of long lists
+
+Other editing features:
+ - new parameters $PENDING, $MARK, $BUFFERLINES
+ - Easy display of a prompt from within an editing widget
+
+Code parsing, storing and execution:
+ - Completely new system of storing code internally, greatly optimised
+ - Much less memory for shell functions etc.
+ - Can compile shell functions to .zwc `wordcode' functions for fast
+ loading
+ - Can create `digest' files of entire directories in .zwc format
+
+Parameters:
+ - Floating point support added, similar to ksh93, `typeset -F' and
+ `typeset -E' declare floating point variables; usual C/Fortran-like
+ rules for integer/float conversion
+ - Mathematical library zsh/mathfunc contains all the standard mathematical
+ functions for use in arithmetical expressions
+ - Improved parsing of arithmetical expressions and better error messages
+ - Special parameters can be made local
+ - `typeset -h' hides specialness of parameters, either as parameter
+ attribute or when declaring new local variable
+ - Local parameters can now be exported as in other shells; new option
+ GLOBAL_EXPORTS on by default provides old behaviour that `typeset -x'
+ referred to global parameters.
+ - zsh/parameter module enhanced: now needed for new completion; parameters
+ provided have `-h' flag set so that they are hidden by `typeset', so
+ that existing functions don't need to be changed
+ - Quotes can be stripped from parameter values with ${(Q)...}, providing
+ reverse of ${(q...)...} facility
+
+Globbing and pattern matching:
+ - Pattern matching rewritten for efficiency
+ - Supports `backreferences', i.e. extracting parenthesised chunks of
+ matches, e.g.
+ [[ $foo = (#b)(*/)[^/]* ]]
+ stores the part of $foo up to the last / in $match[1] and the indexes of
+ the match in $mbegin[1], $mend[1]. (#m) is also available to set $MATCH
+ to the entire match and corresponding $MBEGIN, $MEND: useful in
+ parameter substitutions like ${.../.../...}.
+ - (#s) and (#e) match start and end of pattern like ^ and $ in regular
+ expression, useful in complex expressions such as ((#s)|/)dirname((#e)|/)
+ and in parameter expressions.
+
+ - Depth-first/last listing of recursive glob lists
+
+Functions etc.:
+ - `autoload -X' inside a function body instructs the shell to
+ bootstrap the function at that point
+ - `autoload +X fn' says load the function fn but don't execute it
+ - Prompt `themes' make customization of prompts easier
+
+Modules:
+ - New hierarchical naming scheme for modules; supplied modules go into
+ zsh subdirectory, so zle becomes zsh/zle etc.; aliases supplied for
+ compatibility for existing code, but the new format should be used in
+ future.
+ - zmodload is more consistent between dynamically and statically linked
+ shells
+ - zsh/zftp and its function suite support multiple sessions (zfsession
+ command); zftransfer allows transfer of files between two ftp sessions
+ with no local file; use styles for e.g. progress style; IPv6 supported;
+ recursive put `zfput -r' for uploads
+ - zsh/zpty module creates pseudoterminal and allows builtin `expect'-like
+ behaviour
+
+Other:
+ - Test suite, not yet complete (`make test')
+ - use of Linux task limits
+ - Many fixes including output redirection with `setopt xtrace' and
+ other redirection fixes; NIS+ problem.
+ - Better null-command behaviour in sh and csh emulation
+ - Internal memory usage optimisations
+
+New features in zsh version 3.1.6 (beta version)
+------------------------------------------------
+Note also the changes for 3.0.6, which include changes between 3.1.5. and
+3.1.6.
+
+New completion system via shell functions; massive degree of
+programmability and configurability:
+ - ready-made function suite to use, see zshcompsys(1)
+ - approximate completion and spelling correction via completion
+ - control over matching for case-independence, partial word completion, etc.
+ - menu selection: choose a completion by moving the cursor
+ - coloured completion lists
+ - completion of filenames in quotes is now more reliable; splitting
+ quoted strings into command arguments is also possible.
+
+Other editing changes:
+ - enhancements to function/editing interface: new parameters, numeric
+ arguments, string argument passing, reading keys from widgets.
+ - the old history-search-{back,for}ward behaviour and bindings have
+ returned (up to minor details).
+ - BASH_AUTO_LIST option to show completion list only on second key press.
+ - the ZBEEP parameter gives a string to output instead of beeping,
+ allowing you to have a visual bell.
+
+History changes: new options HIST_NO_FUNCTIONS, HIST_EXPIRE_DUPS_FIRST,
+HIST_FIND_NO_DUPS, HIST_IGNORE_ALL_DUPS, INC_APPEND_HISTORY,
+HIST_SAVE_NO_DUPS, SHARE_HISTORY, allow better control of when history is
+read and written and how duplicates are handled. New format for history
+saves.
+
+Associative arrays plus enhanced parameter substitutions to retrieve keys
+and values.
+
+Globbing changes:
+ - Case-insensitive and approximate globbing.
+ - Ordering and indexing of globbing matches, e.g. *(om[1]) picks
+ most recently modified file.
+ - General file mode qualifier with chmod(1)-like syntax, e.g. *(f:u+wx:)
+
+New loadable modules:
+ - zftp, plus associated function suite, for turning your zsh session
+ into an FTP session too
+ - parameter, for examining and altering shell hash tables via an
+ associative array interface.
+ - mapfile, for reading and writing external files via an associative
+ array interface.
+
+Debugging and prompt enhancements:
+ - $PS4 can contain %i for $LINENO as well as %N for script or function
+ names (default PS4 changed), also %_ for current shell structure
+ executing;
+ - Prompt truncation %<...< is now more flexible: it applies to a
+ whole section of the prompt, not just one escape. You need to put
+ %<< after the truncated escape to get the old behaviour.
+ - %20(l.yes.no) in prompts prints yes if at least 20 characters have
+ been output, else no (e.g. for outputting extra newlines).
+
+Parameter and expansion changes
+ - `typeset -t MYPATH mypath' creates tied path/PATH-like variables
+ - `typeset -g' allows operations on parameters without making them local
+ - New expansions
+ - ${(t)param} prints type information for $param
+ - ${(P)param} treats value of $param as the name of a param to
+ substitute
+ - ${foo:q} can quote replaced parameter text from expansion
+ - ${foo/old/new} substitution, like bash; also (S) flag for shortest
+ match
+ - $foo[(b.2.i)bar] starts searching $foo for bar starting at 2nd match
+
+Builtin and function changes
+ - stat module: `stat -H hash foo' gives you e.g. $hash[mtime]
+ - `autoload -U' autoloads functions without alias expansion.
+
+Other new options:
+ - LOCAL_TRAPS allows signal traps to be local to functions (as in ksh).
+ - NO_RCS can now be turned on at any point in initialization files.
+ - NO_GLOBAL_RCS can force /etc/z* files after /etc/zshenv to be skipped.
+ (Please don't use this as an excuse to stuff more into /etc/zshenv!)
+ - Existing MAGIC_EQUAL_SUBST option is more useful; any argument containing
+ ...=~...:~... will perform filename expansion on the ~ (previously,
+ the string before `=' had to look like a parameter name).
+
+Configuration changes:
+ - Generation of signal names should be more reliable
+ - Customizable installation of shell functions from distribution.
+
+New features in zsh version 3.0.6
+---------------------------------
+
+Most of these changes are designed to improve compatibility with zsh
+version 3.1.6, the latest development release. However, this release also
+fixes all known Year 2000 (Y2K) bugs in zsh 3.0.
+
+History changes:
+ - whitespace between words is ignored in history searches.
+ - new option HIST_REDUCE_BLANKS removes extra whitespace in the stored
+ history.
+ - support for reading (but not writing) version 3.1.6 history files.
+
+Globbing changes:
+ - the a, c, and m glob qualifiers can now test time in seconds.
+ - globbing of number ranges behaves more like character ranges in that
+ it can match a prefix of a number, e.g. `<1-5>*' matches 1, 2, 3, 4,
+ 5, 17, 23skiddoo, 5986, etc., but not 6, 7, 8ball, 911, etc.
+
+Parameter and expansion changes:
+ - expansion of ~ and other globbing flags via ${~param} do not depend
+ upon EXTENDED_GLOB (bug fix).
+ - nested parameter substitutions require braces (this was always the
+ documented behavior, but previous parsers didn't enforce it).
+ - quote only nested expansion, e.g. ${(f)"$(<file)"} reads complete
+ `file', then splits lines into array.
+
+Builtin and function changes:
+ - `typeset -U' works on the colon-array version of linked parameters.
+ - `typeset +f' and `functions +' output the names (only) of functions.
+ - `emulate -L' has the effect of `setopt localoptions'.
+ - in fn1() { local foo; unset foo; foo=bar; }, foo is restored at local
+ level, whereas if the `unset foo' appeared in a nested function it
+ would have been restored at global level, which was presumably wrong.
+ - `foo=bar >&file' is a redirection, not a NULLCMD.
+ - any single complex command, such as `case ... esac', parses as if
+ semicolon-terminated (bug fix).
+ - the shell function `preexec', if defined, is run after parsing each
+ command line but before executing the command.
+
+Other changes:
+ - the option PRINT_EIGHT_BIT causes zsh to emit raw bytes in prompts
+ and completion lists even if the system ctype(3) package says that
+ those bytes are not "printable."
+
+Debugging enhancements:
+ - LINENO is now very much more useful in scripts and functions and is
+ reported correctly in most error messages.
+ - ERREXIT behavior is now consistent with newer Bourne-like shells,
+ e.g. with respect to `if' tests that fail.
+
+Configuration changes:
+ - Large file and 64-bit integers on 32-bit machines supported where
+ provided by OS.
+ - a few more system features, such as getpwnam/getpwuid, are tested for.
+
+
+New features in zsh version 3.1 (beta version)
+----------------------------------------------
+
+On most operating systems zsh can load binary modules dynamically at
+run-time. ZLE and the compctl builtin are now reside in a separate
+module which is loaded automatically on demand.
+
+for ((expr; expr; expr)) do ... done loop syntax from AT&T ksh93 is
+now supported.
+
+POSIX globbing character classes ([:alnum:] etc.) are now supported.
+
+ksh's case fall-through feature (;&) is supported.
+
+ksh93's $'' quoting syntax is supported.
+
+Restricted mode is now supported. This is controlled by the new option
+RESTRICTED (-r).
+
+New options BARE_GLOB_QUAL, HIST_NO_FUNCTIONS (alias NO_LOG), KSH_GLOB,
+PRINT_EIGHT_BIT, PROMPT_BANG, PROMPT_PERCENT, RM_STAR_WAIT.
+
+Options ALWAYS_LAST_PROMPT, APPEND_HISTORY, AUTO_LIST, AUTO_MENU,
+AUTO_PARAM_KEYS, AUTO_PARAM_SLASH, AUTO_REMOVE_SLASH, LIST_AMBIGUOUS
+and LIST_TYPES are now on by default.
+
+In ZLE, arbitrarily many keymaps can be defined. Multi-character
+keybindings now work.
+
+Completion can be performed within a brace expansion.
+
+EMACS-like universal-argument function.
+
+
+New features in zsh version 3.0
+-------------------------------
+
+Trailing "/" in a glob pattern now works like in other shell thus it
+can no longer be used as a shorthand for "(/)".
+
+Much improved sh/ksh emulation. When zsh is invoked as sh it mostly
+conforms to POSIX 1003.2.
+
+Enhanced parameter expansion features: new flags: A, @, e, W, p, f, F.
+Expansions can be nested. For example,
+"${${(M)${(f@)$(<builtin.pro)}:#char*}[2][(w)3]}" expands to the third
+word of the second line of builtin.pro which begins with char. See
+zshexpn(1) for the details.
+
+***/foo glob does recursive directory search following symbolic links.
+
+Traps defined by the trap builtin are now executed in the current shell
+environment and not as a shell function. This means that $1 is not set
+to the signal number. Of course the TRAPxxx functions continue working
+as before.
+
+Traps defined by the trap builtin are reset to their default values in
+subshells.
+
+Option names can be prefixed by `no' to unset an option.
+setopt no_option_name is the same as unsetopt option_name.
+This change affects the output of the setopt and unsetopt
+builtins when these are invoked without arguments. See
+the zshoptions manual page for more explanation.
+
+!, {, } and [[ are now reserved words. Things like [[-z $foo]] or {foo}
+should not be used. {foo} still works if the IGNORE_BRACES option is not
+set but this feature may be removed in the future. [[ -z $foo ]] and
+{ foo } should be used instead.
+
+HOSTTYPE special parameter is removed. The new OSTYPE, MACHTYPE and
+VENDOR parameters should be used instead.
+
+VERSION parameter is renamed to ZSH_VERSION
+
+exec now saves the history in interactive shells. If you do not like this
+behaviour you can alias exec to 'unset HISTFILE ; exec'.
+
+${~spec}, ${=spec} and ${^spec} used to toggle the effect of
+globsubst/shwordsplit/rcexpandparam. Now these force the corresponding
+option on. ~, = or ^ can be doubled to force the relevant option off for
+the substitution.
+
+Explicitly requested word splitting like ${=spec} or ${(s:delim:)spec}
+will be executed even if the substitution is double quoted.
+
+The right-hand side of assignments are no longer globbed by default hence
+assignment foo=* will assign '*' as a value of foo. Use the foo=( * )
+array assignment syntax to get the old behaviour. Alternatively the
+GLOB_ASSIGN can be set to emulate the old behaviour but the usage of this
+option is strongly discouraged and this option may be completely removed in
+the future.
+
+foo=$bar no longer creates an array even if bar is an array. Use
+foo=( $bar ) or even better, foo=( "$bar[@]" ) instead.
+
+When foo is an array parameter ${#foo} will always return the length of the
+array even if the substitution is double quoted. ${(c)#foo} should be used
+to get back the old behaviour.
+
+When the prompt_subst option is set prompts are fully expanded using
+parameter expansion, command substitution and arithmetic expansion.
+In 2.5 backquote substitution was not performed in the prompts so this
+change might cause problems in some startup scripts if ` is used literally
+in prompts.
+
+History substitution is now not performed if the history escape character
+appears in a single-quoted string. This may break some interactive shell
+functions which use \! in single-quoted strings.
+
+The UID, EUID, GID, EGID parameters can be assigned now. The assignment
+executes the setuid(), seteuid(), setgid(), setegid() respectively. On
+systems where setuid and seteuid is not supported these functions are
+emulated using setreuid or setresuid which may result in a different
+behaviour.
+
+Assigning the USERNAME parameter will call setuid(uid) where uid is the
+user id of the specified user.
+
+The privileged (-p) option is automatically set on invocation if euid != uid
+or egid != gid. If this option is set no user startup files are sourced.
+The shell will drop privileges when this option is unset by resetting its
+euid to uid and its egid to gid.
+
+The =number substitution for accessing the directory stack is changed to
+~number to allow =command substitution when a command name begins with a
+digit.
+
+<> is a redirection operator which opens the standard input for both
+reading and writing. To match a number use <->.
+
+Option letters -1 and -C for PRINT_EXIT_VALUE and NO_CLOBBER are swapped:
+`set -C' sets NO_CLOBBER and `set -1' sets PRINT_EXIT_VALUE.
+
+AUTO_PUSHD behaviour is changed. Now cd without arguments will always go
+to the $HOME directory even if AUTO_PUSHD is set and PUSHD_TO_HOME is not
+set. If you preferred the old behaviour you can alias cd to pushd.
+
+IFS word splitting with SH_WORD_SPLIT and the splitting of the input in the
+read builtin has changed in cases when IFS contains characters other than
+<space>, <tab>, <newline>. See the description of IFS in the zshparam
+manual page for more details.
+
+
+New features in zsh version 2.5
+-------------------------------
+
+Greatly expanded completion possibilities. Programmable completion
+allows detailed control over what arguments of what commands can be
+completed to what. See dots/zcomp in the distribution for examples.
+
+Expand filenames with ~ and = on the right hand side of parameter
+assignments. New option MAGIC_EQUAL_SUBST to do it in all
+identifier=expression arguments.
+
+${+name} becomes 1 or 0 if name is set or unset. ${~spec} toggles
+GLOB_SUBST in substitution. Parameter substitution takes lots
+of flags in the format ${(flags)name}.
+
+New glob qualifiers for block/character special files, times in glob
+qualifiers can be in months, weeks, days, hours, minutes. Qualifiers can
+work on links or on what they point to. Qualifiers separated by commas
+are or-ed.
+
+New parameter substitution modifiers (fFwW) to repeat actions. New
+option CSH_JUNKIE_HISTORY.
+
+New line editor functions history-beginning-search-backward,
+history-beginning-search-forward, expand-or-complete-prefix, push-input,
+push-line-or-edit.
+
+Assign to part of a string, use qualifiers on string subscription with
+$foo[(qual)2,5]
+
+New parameters: EGID, EUID, KEYTIMEOUT
+
+New prompt escape sequence %_ to get constructs like for and while in
+the secondary prompt. %E in prompt clears to end of screen.
+
+Conditional expressions in PROMPT and WATCHFMT.
+
+New options ALWAYS_LAST_PROMPT, ALWAYS_TO_END, AUTO_PARAM_KEYS,
+COMPLETE_ALIASES, COMPLETE_IN_WORD, CSH_JUNKIE_HISTORY, GLOB_SUBST,
+LIST_AMBIGUOUS, MAGIC_EQUAL_SUBST, NO_FLOW_CONTROL, PROMPT_SUBST
+
+New option -m to many builtins makes arguments subject to pattern
+matching.
+
+Bindkey can now bind both key sequences and prefixes of those. You can
+for example bind ESC and function keys sending ESC sequences.
+
+Additional options to read builtin to use in functions called by
+completion.
+
+New options to print to sort arguments and print them in columns.
+
+Some additional resource limits can be specified.
+
+Some editor functions now work in the minibuffer.