mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
205 lines
8.0 KiB
Plaintext
205 lines
8.0 KiB
Plaintext
-----------------
|
|
THE Z SHELL (ZSH)
|
|
-----------------
|
|
|
|
Version
|
|
-------
|
|
|
|
This is development code based on zsh version 4.2.1.
|
|
|
|
Installing Zsh
|
|
--------------
|
|
|
|
The instructions for compiling zsh are in the file INSTALL. You should
|
|
also check the file MACHINES in the top directory to see if there
|
|
are any special instructions for your particular architecture.
|
|
|
|
Features
|
|
--------
|
|
|
|
Zsh is a shell with lots of features. For a list of some of these, see the
|
|
file FEATURES, and for the latest changes see NEWS. For more
|
|
details, see the documentation.
|
|
|
|
Possible incompatibilities
|
|
---------------------------
|
|
|
|
Currently the only known incompatibilities between 4.2.0 and later
|
|
versions are minor:
|
|
|
|
|
|
Since 4.2.1:
|
|
|
|
The "test" and "[" builtins now behave more like relevant Unix standards
|
|
suggest they should. Previously they were a simple front-end to the same
|
|
tests used by zsh's "[[" syntax. (The documentation was previously cagey
|
|
about what "test" and "[" actually did.) "[[" has always been the
|
|
recommended way of implementing tests within zsh.
|
|
|
|
|
|
From 4.2.0 to 4.2.1:
|
|
|
|
IPv6 addresses must be specified in square brackets in the zftp module and
|
|
the function system built on top of the zftp module.
|
|
|
|
Special traps for pseudosignals ZERR, DEBUG and EXIT are no longer executed
|
|
inside other traps. Users may well have assumed this was the case anyway
|
|
since the behaviour was not explicity documented. See the NEWS file for
|
|
more detail.
|
|
|
|
By default, a maximum function depth of 4096 is now compiled into the
|
|
shell. This may be altered during configuration; see `Function depth' in
|
|
INSTALL.
|
|
|
|
|
|
Some particular differences you may notice between the 4.0 and 4.2 series
|
|
of releases:
|
|
|
|
The bash-compatibility zle functions described in the zshcontrib manual
|
|
page have been removed as a more configurable set of editing widgets for
|
|
dealing with words have been added. The following code in .zshrc will set
|
|
up for bash-style word handling:
|
|
autoload -U select-word-style
|
|
select-word-style bash
|
|
|
|
The `=prog' facility for expanding command paths (provided the EQUALS
|
|
option is enabled, as it is by default) no longer expands aliases. It was
|
|
felt this feature was underused and confusing.
|
|
|
|
In 4.0, a literal `/' was quoted in the `src' text of a substitution of the
|
|
form `${foo/src/rep}' or ${foo//src/rep} with two backslashes. This was
|
|
documented, but inconsistent with normal quoting conventions and poorly
|
|
implemented. The `/' now requires only one backslash to quote it whether
|
|
or not the expression occurs in double quotes. For example:
|
|
% foo=word/bird
|
|
% print ${foo/\//-} "${foo/\//+}"
|
|
word-bird word+bird
|
|
Note also the following workaround which is valid in all versions of the
|
|
shell that support this syntax:
|
|
% slash=/
|
|
% foo=word/bird
|
|
% print ${foo/$slash/-} "${foo/$slash/+}"
|
|
|
|
In 4.0, the -M option to bindkey used the first non-option argument to
|
|
specify the keymap, whereas it now uses an argument to the option. Hence:
|
|
bindkey -M -R keymap a-z self-insert
|
|
needs to be rewritten as
|
|
bindkey -M keymap -R a-z self-insert
|
|
The following form works in both versions:
|
|
bindkey -R -M keymap a-z self-insert
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
There are a number of documents about zsh in this distribution:
|
|
|
|
Doc/Zsh/*.yo The master source for the zsh documentation is written in
|
|
yodl. Yodl is a document language written by Karel Kubat.
|
|
It is not required by zsh but but it is a nice program so
|
|
you might want to get it anyway, especially if you are a
|
|
zsh developer. It can be downloaded from
|
|
ftp://ftp.lilypond.org/pub/yodl/
|
|
|
|
Doc/zsh*.1 Man pages in nroff format. These will be installed
|
|
by "make install.man" or "make install". By default,
|
|
these will be installed in /usr/local/man/man1, although
|
|
you can change this with the --mandir option to configure
|
|
or editing the user configuration section of the top level
|
|
Makefile.
|
|
|
|
Doc/zsh.texi Everything the man pages have, but in texinfo format. These
|
|
will be installed by "make install.info" or "make install".
|
|
By default, these will be installed in /usr/local/info,
|
|
although you can change this with the --infodir option to
|
|
configure or editing the user configuration section of the
|
|
top level Makefile. Version 4.0 or above of the
|
|
Texinfo tools are recommended for processing this file.
|
|
|
|
Also include in the distribution are:
|
|
|
|
Doc/intro.ms An introduction to zsh in troff format using the ms
|
|
macros. This document explains many of the features
|
|
that make zsh more equal than other shells.
|
|
Unfortunately this is based on zsh-2.5 so some examples
|
|
may not work without changes but it is still a good
|
|
introduction.
|
|
|
|
For more information, see the website, as described in the META-FAQ.
|
|
|
|
If you do not have the necessary tools to process these documents,
|
|
PostScript, ASCII, Info and DVI versions are available in the separate
|
|
file zsh-doc.tar.gz at the archive sites listed in the META-FAQ.
|
|
|
|
The distribution also contains a Perl script in Utils/helpfiles which
|
|
can be used to extract the descriptions of builtin commands from the
|
|
zshbuiltins manual page. See the comments at the beginning of the
|
|
script about its usage. The files created by this script can be used
|
|
by example function run-help located in the subdirectory Functions/Misc to
|
|
show information about zsh builtins and run `man' on external commands.
|
|
For this the shell variable HELPDIR should point to a directory containing
|
|
the files generated by the helpfiles script. run-help should be
|
|
unaliased before loading the run-help function. After that this function
|
|
will be executed by the run-help ZLE function which is by default bound
|
|
to ESC-h in emacs mode.
|
|
|
|
Examples
|
|
--------
|
|
|
|
Examples of zsh startup files are located in the subdirectory
|
|
StartupFiles. Examples of zsh functions and scripts are located in
|
|
the subdirectory Functions. Examples of completion control commands
|
|
(compctl) are located in the file Misc/compctl-examples.
|
|
|
|
Zsh FTP Sites, Web Pages, and Mailing Lists
|
|
-------------------------------------------
|
|
|
|
The current list of zsh FTP sites, web pages, and mailing lists can be
|
|
found in the META-FAQ. A copy is included in this distribution and is
|
|
available separately at any of the zsh FTP sites.
|
|
|
|
Common Problems and Frequently Asked Questions
|
|
----------------------------------------------
|
|
|
|
Zsh has a list of Frequently Asked Questions (FAQ) maintained by Peter
|
|
Stephenson <pws@zsh.org>. It covers many common problems encountered
|
|
when building, installing, and using zsh. A copy is included in this
|
|
distribution in Etc/FAQ and is available separately at any of the zsh
|
|
ftp sites.
|
|
|
|
Zsh Maintenance and Bug Reports
|
|
-------------------------------
|
|
|
|
Zsh is currently maintained by the members of the zsh-workers mailing list
|
|
and coordinated by Peter Stephenson <coordinator@zsh.org>. Please send
|
|
any feedback and bugs reports to <zsh-workers@sunsite.dk>.
|
|
|
|
Reports are most helpful if you can reproduce the bug starting zsh with
|
|
the -f option. This skips the execution of local startup files except
|
|
/etc/zshenv. If a bug occurs only when some options set try to locate
|
|
the option which triggers the bug.
|
|
|
|
There is a script "reporter" in the subdirectory Util which will print out
|
|
your current shell environment/setup. If you cannot reproduce the bug
|
|
with "zsh -f", use this script and include the output from sourcing this
|
|
file. This way, the problem you are reporting can be recreated.
|
|
|
|
The known bugs in zsh are listed in the file Etc/BUGS. Check this as
|
|
well as the Frequently Asked Questions (FAQ) list before sending a bug
|
|
report. Note that zsh has some features which are not compatible with
|
|
sh but these are not bugs. Most of these incompatibilities go away
|
|
when zsh is invoked as sh or ksh (e.g. using a symbolic link).
|
|
|
|
If you send a bug report to the list and are not a subscriber, please
|
|
mention this in your message if you want a response.
|
|
|
|
If you would like to contribute to the development and maintenance of zsh,
|
|
then you should join the zsh-workers mailing list (check the META-FAQ
|
|
for info on this). You should also read the "zsh-development-guide"
|
|
located in the subdirectory Util.
|
|
|
|
Contributors
|
|
------------
|
|
|
|
The people who have contributed to this software project are listed
|
|
in Etc/CONTRIBUTORS.
|