Provided by: zsh-common_5.9-6ubuntu2_all bug

NAME

       zshroadmap  - informal introduction to the zsh manual The Zsh Manual, like the shell itself, is large and
       often complicated.  This section of the manual provides some pointers to areas  of  the  shell  that  are
       likely  to  be  of  particular  interest  to new users, and indicates where in the rest of the manual the
       documentation is to be found.

WHEN THE SHELL STARTS

       When it starts, the shell reads commands from various files.  These can be created or edited to customize
       the shell.  See the section Startup/Shutdown Files in zsh(1).

       If no personal initialization files exist for the current user, a function is run to help you change some
       of the most common settings.  It won't appear if your administrator has disabled the zsh/newuser  module.
       The  function  is  designed  to  be  self-explanatory.   You  can  run  it  by  hand  with  `autoload -Uz
       zsh-newuser-install; zsh-newuser-install -f'.  See also the section  `User  Configuration  Functions'  in
       zshcontrib(1).

INTERACTIVE USE

       Interaction  with  the  shell  uses  the  builtin  Zsh  Line Editor, ZLE.  This is described in detail in
       zshzle(1).

       The first decision a user must make is whether to use the Emacs or  Vi  editing  mode  as  the  keys  for
       editing  are  substantially different.  Emacs editing mode is probably more natural for beginners and can
       be selected explicitly with the command bindkey -e.

       A history mechanism for retrieving previously typed lines (most simply with the Up or Down arrow keys) is
       available;  note that, unlike other shells, zsh will not save these lines when the shell exits unless you
       set appropriate variables, and the number of history lines retained by default is quite small (30 lines).
       See  the  description  of  the shell variables (referred to in the documentation as parameters) HISTFILE,
       HISTSIZE and SAVEHIST in zshparam(1).  Note that it's currently only possible to  read  and  write  files
       saving history when the shell is interactive, i.e. it does not work from scripts.

       The  shell  now  supports the UTF-8 character set (and also others if supported by the operating system).
       This is (mostly) handled transparently by the shell, but the degree of support in terminal  emulators  is
       variable.   There  is  some  discussion  of  this  in  the  shell FAQ, https://www.zsh.org/FAQ/.  Note in
       particular that for combining characters to be handled  the  option  COMBINING_CHARS  needs  to  be  set.
       Because  the  shell  is  now  more sensitive to the definition of the character set, note that if you are
       upgrading from an older version of the shell you should ensure that the appropriate variable, either LANG
       (to  affect  all  aspects of the shell's operation) or LC_CTYPE (to affect only the handling of character
       sets) is set to an appropriate value.  This is true even if you are using  a  single-byte  character  set
       including  extensions  of  ASCII  such  as ISO-8859-1 or ISO-8859-15.  See the description of LC_CTYPE in
       zshparam(1).

   Completion
       Completion is a feature present in many shells. It allows the user to  type  only  a  part  (usually  the
       prefix)  of  a  word  and have the shell fill in the rest.  The completion system in zsh is programmable.
       For example, the shell can be set to complete email addresses in arguments to the mail command from  your
       ~/.abook/addressbook;  usernames,  hostnames,  and  even  remote  paths  in  arguments to scp, and so on.
       Anything that can be written in or glued together with zsh can be the source  of  what  the  line  editor
       offers as possible completions.

       Zsh  has  two  completion  systems, an old, so called compctl completion (named after the builtin command
       that serves as its complete and only user interface), and a new one, referred to as compsys, organized as
       library  of builtin and user-defined functions.  The two systems differ in their interface for specifying
       the completion behavior.  The new system is more customizable and is supplied with completions  for  many
       commonly used commands; it is therefore to be preferred.

       The  completion  system  must  be  enabled  explicitly  when  the shell starts.  For more information see
       zshcompsys(1).

   Extending the line editor
       Apart from completion, the line editor is highly extensible by means of  shell  functions.   Some  useful
       functions are provided with the shell; they provide facilities such as:

       insert-composed-char
              composing characters not found on the keyboard

       match-words-by-style
              configuring what the line editor considers a word when moving or deleting by word

       history-beginning-search-backward-end, etc.
              alternative ways of searching the shell history

       replace-string, replace-pattern
              functions for replacing strings or patterns globally in the command line

       edit-command-line
              edit the command line with an external editor.

       See the section `ZLE Functions' in zshcontrib(1) for descriptions of these.

OPTIONS

       The  shell  has  a  large  number  of options for changing its behaviour.  These cover all aspects of the
       shell; browsing the full documentation  is  the  only  good  way  to  become  acquainted  with  the  many
       possibilities.  See zshoptions(1).

PATTERN MATCHING

       The  shell  has  a  rich  set  of  patterns  which  are  available  for  file  matching (described in the
       documentation as `filename generation' and also known for historical reasons as `globbing') and  for  use
       when programming.  These are described in the section `Filename Generation' in zshexpn(1).

       Of  particular  interest  are  the following patterns that are not commonly supported by other systems of
       pattern matching:

       **     for matching over multiple directories

       |      for matching either of two alternatives

       ~, ^   the ability to exclude patterns from matching when the EXTENDED_GLOB option is set

       (...)  glob qualifiers, included in parentheses at the end of the pattern, which  select  files  by  type
              (such as directories) or attribute (such as size).

GENERAL COMMENTS ON SYNTAX

       Although  the  syntax  of  zsh  is  in ways similar to the Korn shell, and therefore more remotely to the
       original UNIX shell, the Bourne shell, its default  behaviour  does  not  entirely  correspond  to  those
       shells.  General shell syntax is introduced in the section `Shell Grammar' in zshmisc(1).

       One  commonly  encountered  difference  is that variables substituted onto the command line are not split
       into words.  See the description of the shell option SH_WORD_SPLIT in the section  `Parameter  Expansion'
       in  zshexpn(1).   In  zsh, you can either explicitly request the splitting (e.g. ${=foo}) or use an array
       when you want a variable to expand to more  than  one  word.   See  the  section  `Array  Parameters'  in
       zshparam(1).

PROGRAMMING

       The  most convenient way of adding enhancements to the shell is typically by writing a shell function and
       arranging for it to be autoloaded.  Functions are described in the  section  `Functions'  in  zshmisc(1).
       Users changing from the C shell and its relatives should notice that aliases are less used in zsh as they
       don't perform argument substitution, only simple text replacement.

       A few general functions, other than those for the line editor described  above,  are  provided  with  the
       shell and are described in zshcontrib(1).  Features include:

       promptinit
              a prompt theme system for changing prompts easily, see the section `Prompt Themes'

       zsh-mime-setup
              a  MIME-handling  system  which  dispatches  commands according to the suffix of a file as done by
              graphical file managers

       zcalc  a calculator

       zargs  a version of xargs that makes the find command redundant

       zmv    a command for renaming files by means of shell patterns.