mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			165 lines
		
	
	
	
		
			6.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
	
		
			6.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
texinode(Roadmap)(Invocation)(Introduction)(Top)
 | 
						|
chapter(Roadmap)
 | 
						|
cindex(roadmap)
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
sect(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 ifzman(the section
 | 
						|
Startup/Shutdown Files in zmanref(zsh))\
 | 
						|
ifnzman(noderef(Files)).
 | 
						|
 | 
						|
If no personal intialization 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 tt(zsh/newuser) module.
 | 
						|
The function is designed to be self-explanatory.  You can run it by hand
 | 
						|
with `tt(autoload -Uz zsh-newuser-install; zsh-newuser-install -f)'.
 | 
						|
 | 
						|
sect(Interactive Use)
 | 
						|
 | 
						|
Interaction with the shell uses the builtin Zsh Line Editor, ZLE.  This is
 | 
						|
described in detail in ifzman(zmanref(zshzle))\
 | 
						|
ifnzman(noderef(Zsh Line Editor)).
 | 
						|
 | 
						|
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 tt(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) tt(HISTFILE),
 | 
						|
tt(HISTSIZE) and tt(SAVEHIST) in ifzman(zmanref(zshparam))\
 | 
						|
ifnzman(noderef(Parameters Used By The Shell)).
 | 
						|
 | 
						|
The line editor provides an extensive completion system and the shell
 | 
						|
is supplied with completions for many commonly used commands.  Note
 | 
						|
that the new completion system referred to as tt(compsys) is preferred
 | 
						|
over the older tt(compctl) system.  The completion system must be enabled
 | 
						|
explicitly when the shell starts.  For more information see
 | 
						|
ifzman(zmanref(zshcompsys))\
 | 
						|
ifnzman(noderef(Completion System)).
 | 
						|
 | 
						|
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:
 | 
						|
 | 
						|
startitem()
 | 
						|
item(tt(insert-composed-char))(
 | 
						|
composing characters not found on the keyboard
 | 
						|
)
 | 
						|
item(tt(match-words-by-style))(
 | 
						|
configuring what the line editor considers a word when moving or
 | 
						|
deleting by word
 | 
						|
)
 | 
						|
item(tt(history-beginning-search-backward-end), etc.)(
 | 
						|
alternative ways of searching the shell history
 | 
						|
)
 | 
						|
item(tt(replace-string), tt(replace-pattern))(
 | 
						|
functions for replacing strings or patterns globally in the command line
 | 
						|
)
 | 
						|
item(tt(edit-command-line))(
 | 
						|
edit the command line with an external editor.
 | 
						|
)
 | 
						|
enditem()
 | 
						|
 | 
						|
See ifzman(the section `ZLE Functions' in zmanref(zshcontrib))\
 | 
						|
ifnzman(noderef(ZLE Functions)) for descriptions of these.
 | 
						|
 | 
						|
sect(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
 | 
						|
ifzman(zmanref(zshoptions))\
 | 
						|
ifnzman(noderef(Options)).
 | 
						|
 | 
						|
sect(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 ifzman(the section `Filename Generation' in zmanref(zshexpn))\
 | 
						|
ifnzman(noderef(Filename Generation)).
 | 
						|
 | 
						|
Of particular interest are the following patterns that are not commonly
 | 
						|
supported by other systems of pattern matching:
 | 
						|
 | 
						|
startitem()
 | 
						|
item(tt(**))(
 | 
						|
for matching over multiple directories
 | 
						|
)
 | 
						|
item(tt(~), tt(^))(
 | 
						|
the ability to exclude patterns from matching when the tt(EXTENDED_GLOB)
 | 
						|
option is set
 | 
						|
)
 | 
						|
item(tt(LPAR())var(...)tt(RPAR()))(
 | 
						|
glob qualifiers, included in parentheses at the end of the pattern,
 | 
						|
which select files by type (such as directories) or attribute (such as
 | 
						|
size).
 | 
						|
)
 | 
						|
enditem()
 | 
						|
 | 
						|
sect(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 ifzman(the section `Shell Grammar' in
 | 
						|
zmanref(zshmisc))\
 | 
						|
ifnzman(noderef(Shell Grammar)).
 | 
						|
 | 
						|
One commonly encountered difference is that variables substituted onto the
 | 
						|
command line are not split into words.  See the description of the shell option
 | 
						|
tt(SH_WORD_SPLIT) in
 | 
						|
ifzman(the section `Parameter Expansion' in zmanref(zshexpn))\
 | 
						|
ifnzman(noderef(Parameter Expansion)).
 | 
						|
In zsh, you should use arrays when you want variables to expand to more
 | 
						|
than one word.  See
 | 
						|
ifzman(the section `Array Parameters' in zmanref(zshparam))\
 | 
						|
ifnzman(noderef(Array Parameters)).
 | 
						|
 | 
						|
sect(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 ifzman(the section `Functions' in
 | 
						|
zmanref(zshmisc))\
 | 
						|
ifnzman(noderef(Functions)).  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
 | 
						|
ifzman(zmanref(zshcontrib))\
 | 
						|
ifnzman(noderef(User Contributions)).  Features include:
 | 
						|
 | 
						|
startitem()
 | 
						|
item(tt(promptinit))(
 | 
						|
a prompt theme system for changing prompts easily, see ifzman(the section
 | 
						|
`Prompt Themes'
 | 
						|
)\
 | 
						|
ifnzman(noderef(Prompt Themes))
 | 
						|
)
 | 
						|
item(tt(zsh-mime-setup))(
 | 
						|
a MIME-handling system which dispatches commands according to the suffix of
 | 
						|
a file as done by graphical file managers
 | 
						|
)
 | 
						|
item(tt(zcalc))(
 | 
						|
a calculator
 | 
						|
)
 | 
						|
item(tt(zargs))(
 | 
						|
a version of tt(xargs) that makes the tt(find) command redundant
 | 
						|
)
 | 
						|
item(tt(zmv))(
 | 
						|
a command for renaming files by means of shell patterns.
 | 
						|
)
 | 
						|
enditem()
 |