- [Show pagesource]
- [Old revisions]
- [Move]
Impressive list. However, I think the 'docs' section is not quite right, as it was intended to link to existing documentation elsewhere. Personally, I'd put this subpage into the 'scripting' namespace (although, for such a big page, that's probably not fitting for every bit of information in there). We could also introduce a new namespace, like 'misc'…
Moving pages is pretty simple for wiki admins. Ask #zsh on freenode. – ft
Feel free to move it wherever you wish, but do leave a redirect here. I don't feel knowledgeable enough about the organization of the wiki to have an opinion one way or another. – jessew
zrjam, thanks so much for the additions you've done! I really appreciate it. – jessew
I just learned about the various and quite useful indexes available. And I wish I'd known of them sooner, and I wish the links to specific functions, options, etc. were both more visible, and more transparent; what I'd like to be able to do was write: %compdef% and have it automagically link to http://zsh.dotsrc.org/Doc/Release/zsh_19.html#IDX1162 – we should be able to do this, right?
Character Index, e.g. What does this character mean?
This is intended to be a list of the various and multiple meanings in the zsh of all the characters on the keyboard. Flags, punctuation, etc. It is sorted in ASCII order, but with case-folded. While it is intended to be complete, it is not so yet. (Quite a bit of the phrasing used below was copied from the ZSH Reference Card.)
!
!(pat)is a KSH_GLOB operator meaning anything but pat!expris the general form of history expansion!is a history event designator expansion referring to the previous command%!is a prompt expansion for the current history event number!is a shell variable automatically set to the Process ID of last background process!=means not-equal within a double square bracket test expression! expris the boolean NOT within a double square bracket test expression!-fooprevents -foo from being completed within the argument specifiers used by the _arguments completion utility function
"
"serves to mark double quoted strings, a type of quoting (the others are single quoting (') and quoting the backslash (\))!"turns off the history mechanism for the current list
#
X#is an EXTENDED_GLOB globbing pattern meaning zero or more occurrences of element XX##is an EXTENDED_GLOB globbing pattern meaning one or more occurrences of element X(#X)is the form of all EXTENDED_GLOB globbing flags, where X is the flag.#, in scripts (or interactively, with INTERACTIVE_COMMENTS set) makes the rest of the line a comment.!#is a history expansion referring to the current command line so far.%#is a prompt expansion used to identify root shells.${var#pat}is a parameter expansion form returning the minimum match of pat removed from head${var##pat}is a parameter expansion form returning the maximum match of pat removed from head${var:#pat}is a parameter expansion form returning var unless pat matches, then empty${#var}is a parameter expansion form returning the length of var in words (if it's an array) or bytes otherwise.#is a shell variable automatically set to the number of arguments to a script or function
$
$varperforms variable (i.e. parameter) substitution/expansion${var}performs parameter substitution/expansion, and allows parameter expansion flags and alternative parameter expansion forms.$(cmds)turns into the output of cmds, i.e. does command substitution (this is a synonym for`cmds`(backquoting))$((expr))performs arithmetic substitution, i.e. it does math on expr and turns into the result:$is a history expansion word selector referring to the last command argument; it's often used in the form of!!:$which expands to the last argument of the previous command$is a shell variable automatically set to the process ID of the main shell process
%
%is a glob qualifier referring to special files%bis a glob qualifier referring to block special files%cis a glob qualifier referring to character special files%is a parameter expansion flag (e.g.${(%)VARIABLE}) indicating that the string in VARIABLE should be prompt expanded%[optional integer]single characterforms all prompt expansions; rather than duplicating them here, please look them up under their single character%%is a prompt expansion that expands to a percent character (i.e. "%")!?str?:%is a history expansion referring to the most recent word in the history matching str!%or!:%is a history expansion referring to the word matched by the last!?str?history expansion (the%is a word selector/designator)${var%pat}is a parameter expansion form returning the minimum match of pat removed from the tail end of the value of var${var%%pat}is a parameter expansion form returning the maximum match of pat removed from the tail end of the value of var%in arithmetic expansions is the modular operator%=in arithmetic expansions is the modular assignment operator%din the value of theformatcompletion zstyle refers to the specific format
&
&&is a command separator which makes the following command run only if the previous one succeeded, and a arithmetic operator which means logical AND|&is a command separator which is shorthand for2>&1 |, which sends stdout and stderr to stdin of the next command&is a sublist terminator which puts the pipeline before it into the background, and an arithmetic operator which means bitwise AND&!or&|are sublist terminators which background and disown (don't track in the jobs table) their sublists&is a history argument modifier causing a previously set of search and replace strings to be re-used<& numberis a redirection operator which duplicates stdin from file descriptor number>& numberis a redirection operator which duplicates stdout from file descriptor number<& -is a redirection operator which closes stdin>& -is a redirection operator which closes stdout<& pis a redirection operator which moves coprocess input to stdin>& pis a redirection operator which moves stdout to coprocess output>& wordor&> wordare redirection operators which redirect both stdout and stderr to word (>&will be interpreted as above, if possible; use&>if to remove ambiguity)>&| wordor>&! wordor&>| wordor&>! wordare redirection operators which silently overwrite word, and redirect both stdout and stderr»& wordor&» wordare redirection operators which redirect both stdout and stderr to word in append mode»&| wordor»&! wordor&»| wordor&»! wordare redirection operators which silently create word, and redirect both stdout and stderr to it in append mode;&is a list terminator used incasestatements which causes fall-through, i.e. the next list will be executed, too&=or&&=are arithmetic operators which combine bitwise or logical AND with assignment
'
'is used to quote things; it is referred as single-quoting''(two single quotes), when the option RC_QUOTES is on, get turned into one single quote when found inside a single-quoted string; otherwise, they just vanish (i.e. they end the string, and start a new one, which gets automatically joined with the last one)
(
(list)executes list in a subshell(choices)enclose choices in a foreach statement- optionally surround patterns in a case statement
- optional when defining a function
(pat)is a glob pattern that groups globbing patterns(pat1|pat2)is a glob pattern that matches either pat1 or pat2- surround patterns operated on by KSH_GLOB operators
- surround EXTENDED_GLOB globbing flags
- surround glob qualifiers when at the end of a glob pattern
- surround the list executed in process substitution
- surround the command executed in command substitution ($())
- a pair surrounds arithmetic expansion
- may be used to surround parameter expansion flags, instead of
: - group tests within a double square bracket test expression
- doubled, activates arithmetic expansion within test expressions
- surround arguments to math functions
- surround list of options to be excluded in the argument specifiers used by the _arguments completion utility function
- surround explicit list of possible completions for arguments to options in the argument specifiers used by the _arguments completion utility function
- sets of arguments in the argument specifiers used by the _arguments completion utility function
)
- See
( %)is a prompt expansion that expands to a close paren character (i.e. ")")
*
*is a glob pattern referring to any string*is a glob qualifier referring to executable plain files (e.g. "*(*)")**/is a glob pattern referring to any number of directories, i.e. all subdirectories***/same as "**/" but also follows symlinks*(pat)is a KSH_GLOB operator meaning zero or more copies of pat- Other meanings not yet listed here…
+
+//cmd//is a glob qualifier referring to files for which //cmd// evaluates totrue(//cmd// must be a single word)$+VARIABLEreturns 0 if VARIABLE is not set, and 1 if it is set (even if it is set to the empty string)+(pat)is a KSH_GLOB operator meaning one or more copies of pat- Other meanings not yet listed here…
,
-
-is a glob qualifier toggling link following behavior; i.e. does globing work on symbolic link targets, or the link files themselves (default is link files, not targets)<num1-num2>is a glob pattern meaning any number between num1 and num2; if num1 missing, from 0 to num2; if num2 missing, from num1 to infinity- Other meanings not yet listed here…
.
.is a glob quantifier referring to plain files- Other meanings not yet listed here…
/
/is a glob quantifier referring to directories**/is a glob pattern referring to any number of directories, i.e. all subdirectories-/is an option to the _path_files completion function causing it to complete only directories- Other meanings not yet listed here…
-0is a synonym for the CORRECT option0is a shell variable automatically set to the name used to invoke the current shell; with the FUNCTION_ARGZERO option set, reflects the name of functions and scripts while within them
1
2
3
-3is a synonym for the NO_NO_MATCH option
4
-4is a synonym for the GLOB_DOTS option
5
-5is a synonym for the NOTIFY option
6
-6is a synonym for the BG_NICE option
7
-7is a synonym for the IGNORE_EOF option
8
-8is a synonym for the MARK_DIRS option
9
-9is a synonym for the AUTO_LIST option
:
- ":" always true, but without stdout/stderr output
:separates parts of a zstyle context:class:is the form of all character classes, where class is one ofalnum,alpha, etc- Other meanings not yet listed here…
;
;terminates a sublist, and is a synonym for a newline;;terminates a particular case within a case statement;&terminates a particular case within a case statement, but falls through- Other meanings not yet listed here…
<
<num1-num2>is a glob pattern meaning any number between num1 and num2; if num1 missing, from 0 to num2; if num2 missing, from num1 to infinity<(cmds)is a type of process substitution (expansion), which expands to a device file (or FIFO) holding the output of cmds- Other meanings not yet listed here…
=
=is a glob quantifier referring to sockets=(cmds)is a type of process substitution (expansion), which expands to temporary file holding the output of cmds- Other meanings not yet listed here…
>
<num1-num2>is a glob pattern meaning any number between num1 and num2; if num1 missing, from 0 to num2; if num2 missing, from num1 to infinity>(cmds)is a type of process substitution (expansion), which expands to a device file (or FIFO) which will be read for standard input by cmds- Other meanings not yet listed here…
?
?is a glob pattern matching any single character?(pat)is a KSH_GLOB operator matching zero or 1 copy of pat!?stris a history expansion referring to the last command containing str%?is a prompt expansion for the return status of most recently executed command${var:?str}is a parameter expansion form which returns var if it is non-null, otherwise prints str(if given) as an error and aborts?is a shell variable automatically set to the status of the most recently executed commandtest?true_exp:false_expis the C ternary if statement, usable only within arithmetic expressions
@
@(pat)is a KSH_GLOB operator used to group patterns@is a glob quantifier referring to symbolic links%@is a prompt expansion expanding to the current time, in 12 hour (AM/PM) format. (%tis a synonym)@is a parameter expansion flag causing arrays to be expanded even within double quotes@is a shell variable automatically set to the list of positional parameters within a script or function; unlikeargv, it splits into words even within double quotes.
a
-ais a synonym for the ALL_EXPORT option-Aand+Aare options to thesetbuiltin used for creating arrays(#anum)is an EXTENDED_GLOB globbing flag causing num approximations to be permitted in matchesais a glob qualifier specifying a particular access time; its format isafollowed by one of the lettersMwhms(referring to the time units: Months, weeks, hours, minutes or seconds) followed by a plus or minus (referring to at older than or newer than), followed by a number (to set how many time units)Ais a glob qualifier specifying the group read permission is set, i.e. –r—– or 0040Ais a parameter expansion flag which creates an array parameterAAis a parameter expansion flag which creates an associative array parameterais a parameter expansion flag causing sorting to be done on array index-ais a test expression operator which is true if the filename following it existsoais a glob qualifier which causes the results to be sorted by access time; see underofor other sort orders
b
-Bis a synonym for the NO_BEEP option(#b)is an EXTENDED_GLOB globbing flag turning on backreferences, i.e. setting the shell parameters match, mbegin, & mend.(#B)is an EXTENDED_GLOB globbing flag turning off backreferences%bis a glob qualifier referring to block special files- Other meanings not yet listed here…
c
-Cis a synonym for the NO_CLOBBER option%cis a glob qualifier referring to character special filescis a glob qualifier specifying a particular inode change (attribute modification) time; it's format iscfollowed by one of the lettersMwhms(referring to the time units: Months, weeks, hours, minutes or seconds) followed by a plus or minus (referring to at older than or newer than), followed by a number (to set how many time units)ocis a glob qualifier which causes the results to be sorted by inode change (attribute modification) time; see underofor other sort orders- Other meanings not yet listed here…
d
-Dis a synonym for the PUSHD_TO_HOME optionddevis a glob qualifier referring to files with a device number of devDis a glob qualifier which turns on the GLOB_DOTS optionocis a glob qualifier which causes the results to be sorted with files in subdirectories first; see underofor other sort orders- Other meanings not yet listed here…
e
-eis a synonym for the ERR_EXIT option-Eis a synonym for the PUSHD_SILENT option(#e)is an EXTENDED_GLOB globbing flag forcing the pattern to only match at the end of the test stringestringis a glob qualifier referring to files for which string evaluates totrueEis a glob qualifier specifying the group execute permission is set, i.e. —-x— or 0010- Other meanings not yet listed here…
f
-Fis a synonym for the NO_GLOB option-fis a synonym for the NO_RCS optionFis a glob quantifier referring to non-empty directoriesfspecis a glob quantifier referring to files with the chmod-style permissions of spec-fis an option to the _path_files completion function causing it to complete all files, as is the default-F filesis an option to the _path_files completion function causing it to ignore, i.e. not complete files, overriding ignored-patterns- Other meanings not yet listed here…
g
-gis a synonym for the HIST_IGNORE_SPACE option-Gis a synonym for the NULL_GLOB optionGis a glob qualifier referring to files owned by a user in the same group as the current effective user (i.e. with the same effective GID)ggidis a glob qualifier referring to files owned by a user in gid (can be a name instead of a number)-g patis an option to the _path_files completion function causing it to complete files that match pat- Other meanings not yet listed here…
h
-his a synonym for the HIST_IGNORE_DUPS option-His a synonym for the RM_STAR_SILENT optionah,chormhare glob qualifiers specifying a particular access time, inode change (attribute modification) time, or modification time; see undera,cormfor details- Other meanings not yet listed here…
i
-Iis a synonym for the IGNORE_BRACES option-iis a synonym for the INTERACTIVE option(#i)is an EXTENDED_GLOB globbing flag causing case insensitive matching(#I)is an EXTENDED_GLOB globbing flag causing case sensitive matchingIis a glob qualifier specifying the group write permission is set, i.e. —w—- or 0020- Other meanings not yet listed here…
j
-Jis a synonym for the AUTO_CD option%jis a prompt expansion referring to the number of jobs, as displayed by thejobsbuiltinj:str:is a parameter expansion flag causing the words expanded by the parameter to be joined with str in between
k
-kis a synonym for the INTERACTIVE_COMMENTS option-Kis a synonym for the NO_BANG_HIST option- Other meanings not yet listed here…
l
-lis a synonym for the LOGIN option-Lis a synonym for the SUN_KEYBOARD_HACK option(#l)is an EXTENDED_GLOB globbing flag causing lower case to match upper casel-numandl+numare glob qualifiers referring to files with link counts less than (or greater than, for+) numoLis a glob qualifier which causes the results to be sorted by file size (Length); see underofor other sort ordersolis a glob qualifier which causes the results to be sorted by link count; see underofor other sort orders%lis a prompt expansion that expands to the user's tty line%Lis a prompt expansion that expands to the current value of $SHLVL (the depth of nested shells)- Other meanings not yet listed here…
m
-mis a synonym for the MONITOR option-Mis a synonym for the SINGLE_LINE_ZLE option(#m)is an EXTENDED_GLOB globbing flag causing the match data to be saved, i.e. the contents and length of the match are put in the shell parameters MATCH, MBEGIN and MENDmis a glob qualifier specifying a particular modification time; its format ismfollowed by one of the lettersMwhms(referring to the time units: Months, weeks, hours, minutes or seconds) followed by a plus or minus (referring to at older than or newer than), followed by a number (to set how many time units)Mis a glob qualifier which causes directories to be marked (i.e. sets the MARK_DIRS option)(#M)is an EXTENDED_GLOB globbing flag causing the match data not be savedaM,am,cMorcmare glob qualifiers specifying a particular access time (the first two) or inode change (attribute modification) time; see underaorcfor details.omis a glob qualifier which causes the results to be sorted by modification time; see underofor other sort orders- Other meanings not yet listed here…
n
-Nis a synonym for the AUTO_PUSHD option-nis a synonym for the NO_EXEC optionNis a glob qualifier which turns on the NULL_GLOB optionnis a glob qualifier which turns on the NUMERIC_GLOB_SORT optiononis a glob qualifier which causes the results to be sorted by name; see underofor other sort orders- Other meanings not yet listed here…
o
-Ois a synonym for the CORRECT_ALL optionois a glob qualifier that selects a type of sorting; the choices areon, name (default);oL, size (Length);ol, link count;oa, access time,om, modification time,oc, inode change (attribute modification) time,od, files in subdirectories appear before those in the current directory at each level of the searchOis a glob qualifier that selects a type of sorting, reversed fromo; the choices are the same as witho- Other meanings not yet listed here…
p
-Pis a synonym for the RC_EXPAND_PARAM option-pis a synonym for the PRIVILEGED optionpis a glob qualifier referring to named pipes (FIFOs)Pis a parameter expansion flag which causes the name in the parameter expansion to be treated as a variable whose value then becomes the value of the expansionpis a parameter expansion flag that activatesprintescape sequences in the *arguments* of other parameter expansion flags:pis a history expansion modifier which causes the expansion to be printed, but not executed as it would be normally- Other meanings not yet listed here…
q
-Qis a synonym for the PATH_DIRS option(#qexpr)is an EXTENDED_GLOB globbing flag listing a set of glob qualifiersqis a history argument modifier which adds a layer of quotesQis a history argument modifier which strips off a layer of quotesqis a parameter expansion flag causing the result to be quoted with backslashesqqis a parameter expansion flag causing the result to be quoted with single quotesqqqis a parameter expansion flag causing the result to be quoted with double quotesqqqqis a parameter expansion flag causing the result to be quoted with the$'…' formQis a parameter expansion flag which strips off a layer of quotes
r
-Ris a synonym for the LONG_LIST_JOBS option-ris a synonym for the RESTRICTED optionris a glob qualifier specifying that matched files are readable by their ownersRis a glob quantifier referring world readable files- Other meanings not yet listed here…
s
-Sis a synonym for the REC_EXACT option-sis a synonym for the SHIN_STDIN option(#s)is an EXTENDED_GLOB globbing flag forcing the pattern to only match at the beginning of the test stringsis a glob quantifier referring to setuid files (set user id)sis a glob quantifier referring to setgid files (set group id)as,csormsare glob qualifiers specifying a particular access time, inode change (attribute modification) time, or modification time; see undera,cormfor details- Other meanings not yet listed here…
t
-Tis a synonym for the CDABLE_VARS option-tis a synonym for the SINGLE_COMMAND optiontis a glob quantifier referring to files with the sticky bit setTis a glob qualifier which causes directories, links, and special files to be marked (i.e. sets the LIST_TYPES option)- Other meanings not yet listed here…
u
-Uis a synonym for the MAIL_WARNING option-uis a synonym for the NO_UNSET optionUis a glob qualifier referring to files owned by the current effective UIDuuidis a glob qualifier referring to files owned by uid (can be a name instead of a number)- Other meanings not yet listed here…
v
-Vis a synonym for the NO_PROMPT_CR option-vis a synonym for the VERBOSE option- Other meanings not yet listed here…
w
-Wis a synonym for the AUTO_RESUME option-wis a synonym for the CHASE_LINKS optionwis a glob qualifier specifying that matched files are writable by their ownersWis a glob quantifier referring world writable filesaw,cwormware glob qualifiers specifying a particular access time, inode change (attribute modification) time, or modification time; see undera,cormfor details.-W dirsis an option to the _path_files completion function causing it to look in dirs for files to complete- Other meanings not yet listed here…
x
-Xis a synonym for the LIST_TYPES option-xis a synonym for the XTRACE optionxis a glob qualifier specifying that matched files are executable by their ownersXis a glob quantifier referring world executable files- Other meanings not yet listed here…
y
-Yis a synonym for the MENU_COMPLETE option-yis a synonym for the SH_WORD_SPLIT option- Other meanings not yet listed here…
z
-Zis a synonym for the ZLE option- Other meanings not yet listed here…
[
[[ cond ]]evaluates cond as a test expression, returning true or false[class]is a glob pattern meaning any single character in class[^class]is a glob pattern meaning any single character not in class[num]is a glob qualifier causing the pattern to only return only the numth result[beg,end]is a glob qualifier causing the pattern to only return the results between beg and end as if they were an array (beg and end can be expressions)- Other meanings not yet listed here…
\
]
- See
[
^
[^class]is a glob pattern meaning any single character not in class^patis an EXTENDED_GLOB globbing pattern meaning anything that doesn't match pat^is a glob quantifier which negates the following quantifiers^is a history word selector which selects the first argument (i.e. a synonym for1)${^var}is a parameter expansion form that causes the elements of var to be expanded like brace expansion
{
{list}groups the commands in list, so they act like a single command, e.g. they can be redirected as a whole${var}performs parameter substitution/expansion, and allows parameter expansion flags and alternative parameter expansion forms (for which, see under their sections in this page)
|
||is used to connect pipelines (or single simple commands) into an OR sublist|, the pipe character, is used to redirect the output of one command into the input of another, forming a pipeline(pat1|pat2)is a glob pattern that matches either pat1 or pat2- Other meanings not yet listed here…
}
- See
{
~
pat~exclude_patis an EXTENDED_GLOB globbing pattern meaning anything that matches pat and doesn't match exclude_pat



