summaryrefslogtreecommitdiff
path: root/Doc/Zsh
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/Zsh')
-rw-r--r--Doc/Zsh/.distfiles1
-rw-r--r--Doc/Zsh/builtins.yo6
-rw-r--r--Doc/Zsh/calsys.yo2
-rw-r--r--Doc/Zsh/compctl.yo2
-rw-r--r--Doc/Zsh/compsys.yo75
-rw-r--r--Doc/Zsh/compwid.yo2
-rw-r--r--Doc/Zsh/contrib.yo213
-rw-r--r--Doc/Zsh/expn.yo58
-rw-r--r--Doc/Zsh/ftp_sites.yo28
-rw-r--r--Doc/Zsh/func.yo25
-rw-r--r--Doc/Zsh/metafaq.yo60
-rw-r--r--Doc/Zsh/mod_complist.yo4
-rw-r--r--Doc/Zsh/mod_parameter.yo6
-rw-r--r--Doc/Zsh/mod_sched.yo4
-rw-r--r--Doc/Zsh/mod_zutil.yo21
-rw-r--r--Doc/Zsh/options.yo14
-rw-r--r--Doc/Zsh/params.yo11
-rw-r--r--Doc/Zsh/zle.yo20
18 files changed, 334 insertions, 218 deletions
diff --git a/Doc/Zsh/.distfiles b/Doc/Zsh/.distfiles
index dcca24e07..4f521e91c 100644
--- a/Doc/Zsh/.distfiles
+++ b/Doc/Zsh/.distfiles
@@ -14,6 +14,7 @@ exec.yo
expn.yo
filelist.yo
files.yo
+ftp_sites.yo
func.yo
grammar.yo
index.yo
diff --git a/Doc/Zsh/builtins.yo b/Doc/Zsh/builtins.yo
index 3be4a8b21..7170b13b9 100644
--- a/Doc/Zsh/builtins.yo
+++ b/Doc/Zsh/builtins.yo
@@ -621,7 +621,7 @@ ifnzman(noderef(Arithmetic Evaluation))\
. By default var(mathfn) may take
any number of comma-separated arguments. If var(min) is given,
it must have exactly var(min) args; if var(min) and var(max) are
-both given, it must have at least var(min) and and at most var(max)
+both given, it must have at least var(min) and at most var(max)
args. var(max) may be -1 to indicate that there is no upper limit.
By default the function is implemented by a shell function of the same
@@ -1290,10 +1290,6 @@ all parameters are printed on the standard output. If the only argument is
For historical reasons, `tt(set -)' is treated as `tt(set +xv)'
and `tt(set -) var(args)' as `tt(set +xv --) var(args)' when in
any other emulation mode than zsh's native mode.
-
-The tt(sched) builtin is not made available by default when the shell
-starts in a mode emulating another shell. It can be made available
-with the command `tt(zmodload -F zsh/sched b:sched)'.
)
module(setcap)(zsh/cap)
findex(setopt)
diff --git a/Doc/Zsh/calsys.yo b/Doc/Zsh/calsys.yo
index f4bd4eaa4..259eb23b3 100644
--- a/Doc/Zsh/calsys.yo
+++ b/Doc/Zsh/calsys.yo
@@ -363,7 +363,7 @@ entry. `tt(-B 1)' is equivalent to `tt(-b)'.
)
item(tt(-C) var(calfile))(
Explicitly specify a calendar file instead of the value of
-the tt(calendar-file) style or the the default tt(~/calendar).
+the tt(calendar-file) style or the default tt(~/calendar).
)
item(tt(-d))(
Move any events that have passed from the calendar file to the
diff --git a/Doc/Zsh/compctl.yo b/Doc/Zsh/compctl.yo
index 2c84f853f..fa13a747e 100644
--- a/Doc/Zsh/compctl.yo
+++ b/Doc/Zsh/compctl.yo
@@ -69,7 +69,7 @@ search is retried with the last pathname component. If the command starts
with a tt(=), completion is tried with the pathname of the command.
Any of the var(command) strings may be patterns of the form normally
-used for filename generation. These should be be quoted to protect them
+used for filename generation. These should be quoted to protect them
from immediate expansion; for example the command string tt('foo*')
arranges for completion of the words of any command beginning with
tt(foo). When completion is attempted, all pattern completions are
diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo
index 4a24df74e..ad2562a26 100644
--- a/Doc/Zsh/compsys.yo
+++ b/Doc/Zsh/compsys.yo
@@ -447,7 +447,7 @@ directly.
findex(compdef)
cindex(completion system, adding definitions)
startitem()
-xitem(tt(compdef) [ tt(-an) ] var(function names...) [ tt(-[pP]) var(patterns...) [ tt(-N) var(names...) ] ])
+xitem(tt(compdef) [ tt(-ane) ] var(function names...) [ tt(-[pP]) var(patterns...) [ tt(-N) var(names...) ] ])
xitem(tt(compdef -d) var(names...))
xitem(tt(compdef -k) [ tt(-an) ] var(function style key-sequences...))
item(tt(compdef -K) [ tt(-an) ] var(function name style key-sequences ...))(
@@ -460,11 +460,14 @@ defined by `var(cmd1)tt(=)var(service)' lines in tt(#compdef) files, as
described above. The argument for var(cmd) will be completed in the
same way as var(service).
-The var(function) argument may alternatively be a string containing any
-shell code. The string will be executed using the tt(eval) builtin
-command to generate completions. This provides a way of avoiding having
-to define a new completion function. For example, to complete
-files ending in `tt(.h)' as arguments to the command tt(foo):
+The var(function) argument may alternatively be a string containing
+almost any shell code. If the string contains an equal sign, the above
+will take precedence. The option tt(-e) may be used to specify the first
+argument is to be evaluated as shell code even if it contains an equal
+sign. The string will be executed using the tt(eval) builtin command to
+generate completions. This provides a way of avoiding having to define
+a new completion function. For example, to complete files ending in
+`tt(.h)' as arguments to the command tt(foo):
example(compdef '_files -g "*.h"' foo)
@@ -783,7 +786,9 @@ for names of device special files
)
kindex(directories, completion tag)
item(tt(directories))(
-for names of directories
+for names of directories DASH()- tt(local-directories) is used instead
+when completing arguments of tt(cd) and related builtin commands when
+the tt(cdpath) array is set
)
kindex(directory-stack, completion tag)
item(tt(directory-stack))(
@@ -876,7 +881,8 @@ kindex(local-directories, completion tag)
item(tt(local-directories))(
for names of directories that are subdirectories of the current working
directory when completing arguments of tt(cd) and related builtin
-commands (compare tt(path-directories))
+commands (compare tt(path-directories)) DASH()- when the tt(cdpath)
+array is unset, tt(directories) is used instead
)
kindex(manuals, completion tag)
item(tt(manuals))(
@@ -1931,7 +1937,7 @@ changing the foreground background colour, are also available, as is the form
(or, with a numeric argument, some other) width.
After deleting this prompt the variable tt(LISTPROMPT) should be unset for
-the the removal to take effect.
+the removal to take effect.
)
kindex(list-rows-first, completion style)
item(tt(list-rows-first))(
@@ -2298,13 +2304,29 @@ The default value for this style is `false'.
)
kindex(prefix-needed, completion style)
item(tt(prefix-needed))(
-This, too, is used for matches with a common prefix. If it is set to
-`true' this common prefix must be typed by the user to generate the
-matches. In the case of command options, this means that the initial
-`tt(-)', `tt(+)', or `tt(-)tt(-)' must be typed explicitly before option
-names will be completed.
+This style is also relevant for matches with a common prefix. If it is
+set to `true' this common prefix must be typed by the user to generate
+the matches.
-The default value for this style is `true'.
+The style is applicable to the tt(options), tt(signals), tt(jobs),
+tt(functions), and tt(parameters) completion tags.
+
+For command options, this means that the initial `tt(-)', `tt(+)', or
+`tt(-)tt(-)' must be typed explicitly before option names will be
+completed.
+
+For signals, an initial `tt(-)' is required before signal names will
+be completed.
+
+For jobs, an initial `tt(%)' is required before job names will be
+completed.
+
+For function and parameter names, an initial `tt(_)' or `tt(.)' is
+required before function or parameter names starting with those
+characters will be completed.
+
+The default value for this style is `false' for tt(function) and
+tt(parameter) completions, and `true' otherwise.
)
kindex(preserve-prefix, completion style)
item(tt(preserve-prefix))(
@@ -2646,7 +2668,7 @@ most commands.
)
kindex(urls, completion style)
item(tt(urls))(
-This is used together with the the tt(urls) tag by
+This is used together with the tt(urls) tag by
functions completing URLs.
If the value consists of more than one string, or if the only string
@@ -2667,11 +2689,11 @@ descend as deep as necessary.
For example,
example(zstyle ':completion:*' urls ~/.urls
-mkdir -p ~/.urls/ftp/ftp.zsh.org/pub/development
+mkdir -p ~/.urls/ftp/ftp.zsh.org/pub
)
allows completion of all the components of the URL
-tt(ftp://ftp.zsh.org/pub/development) after suitable commands such as
+tt(ftp://ftp.zsh.org/pub) after suitable commands such as
`tt(netscape)' or `tt(lynx)'. Note, however, that access methods and
files are completed separately, so if the tt(hosts) style is set hosts
can be completed without reference to the tt(urls) style.
@@ -2717,17 +2739,6 @@ where the tt(hosts) style is set; note also it must be set before
the cache of host names is generated (typically the first completion
attempt).
)
-kindex(use-perl, completion style)
-item(tt(use-perl))(
-Various parts of the function system use awk to extract words from
-files or command output as it is universally available. However, many
-versions of awk have arbitrary limits on the size of input. If this
-style is set, perl will be used instead. This is almost always
-preferable if perl is available on your system.
-
-Currently this is only used in completions for `make', but it may be
-extended depending on authorial frustration.
-)
kindex(users, completion style)
item(tt(users))(
This may be set to a list of usernames to be completed.
@@ -3400,7 +3411,7 @@ tt(compadd) with additional options which will take precedence over
those generated by tt(_all_labels).
)
findex(_alternative)
-item(tt(_alternative) [ tt(-C) var(name) ] var(spec) ...)(
+item(tt(_alternative) [ tt(-O) var(name) ] [ tt(-C) var(name) ] var(spec) ...)(
This function is useful in simple cases where multiple tags are available.
Essentially it implements a loop like the one described for the tt(_tags)
function below.
@@ -3427,6 +3438,10 @@ the actions, which will loop over all sets of tags. Special handling is
only required if there is an additional valid tag, for example inside a
function called from tt(_alternative).
+The option `tt(-O) var(name)' is used in the same way as by the
+tt(_arguments) function. In other words, the elements of the var(name)
+array will be passed to tt(compadd) when executing an action.
+
Like tt(_tags) this function supports the tt(-C) option to give a
different name for the argument context field.
)
diff --git a/Doc/Zsh/compwid.yo b/Doc/Zsh/compwid.yo
index 06689746c..3042fa373 100644
--- a/Doc/Zsh/compwid.yo
+++ b/Doc/Zsh/compwid.yo
@@ -239,7 +239,7 @@ one more than the maximum selects the first. Unless the value of this
key ends in a space, the match is inserted as in a menu completion,
i.e. without automatically appending a space.
-Both tt(menu) and tt(automenu) may also specify the the number of the
+Both tt(menu) and tt(automenu) may also specify the number of the
match to insert, given after a colon. For example, `tt(menu:2)' says
to start menu completion, beginning with the second match.
diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo
index c02d33cf1..cf42e28a9 100644
--- a/Doc/Zsh/contrib.yo
+++ b/Doc/Zsh/contrib.yo
@@ -302,10 +302,13 @@ called at the same point; these are so-called `hook functions'.
The shell function tt(add-zsh-hook) provides a simple way of adding or
removing functions from the array.
-var(hook) is one of tt(chpwd), tt(periodic), tt(precmd) or tt(preexec),
-the special functions in question.
+var(hook) is one of tt(chpwd), tt(periodic), tt(precmd), tt(preexec),
+tt(zshaddhistory), tt(zshexit), or tt(zsh_directory_name),
+the special functions in question. Note that tt(zsh_directory_name)
+is called in a different way from the other functions, but may
+still be manipulated as a hook.
-var(functions) is name of an ordinary shell function. If no options
+var(function) is name of an ordinary shell function. If no options
are given this will be added to the array of functions to be executed
in the given context.
@@ -315,6 +318,10 @@ the array of functions to be executed.
If the option tt(-D) is given, the var(function) is treated as a pattern
and any matching names of functions are removed from the array of
functions to be executed.
+
+The options tt(-U), tt(-z) and tt(-k) are passed as arguments to
+tt(autoload) for var(function). For functions contributed with zsh, the
+options tt(-Uz) are appropriate.
)
enditem()
@@ -355,7 +362,7 @@ subsect(Use)
All direct user interaction is via the tt(cdr) function.
The argument to cdr is a number var(N) corresponding to the var(N)th most
-recently changed-to directory. 1 is the immediately preceeding directory;
+recently changed-to directory. 1 is the immediately preceding directory;
the current directory is remembered but is not offered as a destination.
Note that if you have multiple windows open 1 may refer to a directory
changed to in another window; you can avoid this by having per-terminal
@@ -544,36 +551,15 @@ enditem()
subsect(Use with dynamic directory naming)
It is possible to refer to recent directories using the dynamic directory
-name syntax that appeared in zsh version 4.3.7. If you create and
-autoload a function tt(zsh_directory_name) containing the following code,
-tt(~[1]) will refer to the most recent directory other than $PWD, and so on.
-This also includes completion.
-
-example(if [[ $1 = n ]]; then
- if [[ $2 = <-> ]]; then
- # Recent directory
- typeset -ga reply
- autoload -Uz cdr
- cdr -r
- if [[ -n ${reply[$2]} ]]; then
- reply=LPAR()${reply[$2]}RPAR()
- return 0
- else
- reply=LPAR()RPAR()
- return 1
- fi
- fi
-elif [[ $1 = c ]]; then
- if [[ $PREFIX = <-> || -z $PREFIX ]]; then
- typeset -a keys values
- values=LPAR()${${(f)"$+LPAR()cdr -l+RPAR()"}/ ##/:}RPAR()
- keys=LPAR()${values%%:*}RPAR()
- _describe -t dir-index 'recent directory index' \
- values keys -V unsorted -S']'
- return
- fi
-fi
-return 1)
+name syntax by using the supplied function tt(zsh_directory_name_cdr)
+a hook:
+
+example(autoload -Uz add-zsh-hook
+add-zsh-hook -Uz zsh_directory_name zsh_directory_name_cdr)
+
+When this is done, tt(~[1]) will refer to the most recent
+directory other than $PWD, and so on. Completion after tt(~[)var(...)
+also works.
subsect(Details of directory handling)
@@ -614,6 +600,7 @@ sitem(Bazaar (tt(bzr)))(http://bazaar-vcs.org/)
sitem(Codeville (tt(cdv)))(http://codeville.org/)
sitem(Concurrent Versioning System (tt(cvs)))(http://www.nongnu.org/cvs/)
sitem(Darcs (tt(darcs)))(http://darcs.net/)
+sitem(Fossil (tt(fossil)))(http://fossil-scm.org/)
sitem(Git (tt(git)))(http://git-scm.com/)
sitem(GNU arch (tt(tla)))(http://www.gnu.org/software/gnu-arch/)
sitem(Mercurial (tt(hg)))(http://mercurial.selenic.com/)
@@ -663,6 +650,7 @@ bzr
cdv
cvs
darcs
+fossil
git
hg
mtn
@@ -706,8 +694,9 @@ example(:vcs_info:<vcs-string>:<user-context>:<repo-root-name>)
startitem()
item(tt(<vcs-string>))(
is one of: git, git-svn, git-p4, hg, hg-git, hg-hgsubversion, hg-hgsvn,
-darcs, bzr, cdv, mtn, svn, cvs, svk, tla or p4. When hooks are active the
-hooks name is added after a `+'. (See tt(Hooks in vcs_info) below.)
+darcs, bzr, cdv, mtn, svn, cvs, svk, tla, p4 or fossil. When hooks are
+active the hooks name is added after a `+'. (See tt(Hooks in vcs_info)
+below.)
)
item(tt(<user-context>))(
is a freely configurable string, assignable by
@@ -767,11 +756,11 @@ revision number. This style lets you modify how that string should look.
)
kindex(nvcsformats)
item(tt(nvcsformats))(
-These "formats" are exported when we didn't detect
-a version control system for the current directory. This is useful if you
-want var(vcs_info) to completely take over the generation of your prompt.
-You would do something like tt(PS1='${vcs_info_msg_0_}') to accomplish
-that.
+These "formats" are exported when we didn't detect a version control system
+for the current directory or var(vcs_info) was disabled. This is useful if
+you want var(vcs_info) to completely take over the generation of your
+prompt. You would do something like tt(PS1='${vcs_info_msg_0_}') to
+accomplish that.
)
kindex(hgrevformat)
item(tt(hgrevformat))(
@@ -837,6 +826,10 @@ these escapes can be controlled via the var(stagedstr) and var(unstagedstr)
styles. The only backends that currently support this option are tt(git) and
tt(hg) (tt(hg) only supports unstaged).
+For this style to be evaluated with the tt(hg) backend, the var(get-revision)
+style needs to be set and the var(use-simple) style needs to be unset. The
+latter is the default; the former is not.
+
Note, the actions taken if this style is enabled are potentially expensive
(read: they may be slow, depending on how big the current repository is).
Therefore, it is disabled by default.
@@ -1128,6 +1121,24 @@ tt(Variable description) below). If an argument is given, that string will be
used instead of tt(default) in the tt(user-context) field of the style
context.
)
+findex(vcs_info_hookadd)
+item(tt(vcs_info_hookadd))(
+Statically registers a number of functions to a given hook. The hook needs
+to be given as the first argument; what follows is a list of hook-function
+names to register to the hook. The `tt(+vi-)' prefix needs to be left out
+here. See tt(Hooks in vcs_info) below for details.
+)
+findex(vcs_info_hookdel)
+item(tt(vcs_info_hookdel))(
+Remove hook-functions from a given hook. The hook needs to be given as the
+first non-option argument; what follows is a list of hook-function
+names to un-register from the hook. If `tt(-a)' is used as the first
+argument, tt(all) occurances of the functions are unregistered. Otherwise
+only the last occurance is removed (if a function was registered to a hook
+more than once) . The `tt(+vi-)' prefix needs to be left out here. See
+tt(Hooks in vcs_info) below for details.
+)
+findex(vcs_info_lastmsg)
item(tt(vcs_info_lastmsg))(
Outputs the last var(${vcs_info_msg_*_}) value.
Takes into account the value of the tt(use-prompt-escapes) style in
@@ -1140,6 +1151,7 @@ Prints a list of all
supported version control systems. Useful to find out possible contexts
(and which of them are enabled) or values for the var(disable) style.
)
+findex(vcs_info_setsys)
item(tt(vcs_info_setsys))(
Initializes var(vcs_info)'s internal list of
available backends. With this function, you can add support for new VCSs
@@ -1187,13 +1199,20 @@ avoid namespace problems, all registered function names are prepended by
a `+vi-', so the actual functions called for the `foo' hook are
`tt(+vi-bar)' and `tt(+vi-baz)'.
+If you would like to register a function to a hook regardless of the
+current context, you may use the var(vcs_info_hookadd) function. To remove
+a function that was added like that, the var(vcs_info_hookdel) function
+can be used.
+
If something seems weird, you can enable the `debug' boolean style in
the proper context and the hook-calling code will print what it tried
to execute and whether the function in question existed.
When you register more than one function to a hook, all functions are
executed one after another until one function returns non-zero or until
-all functions have been called.
+all functions have been called. Context-sensitive hook functions are
+executed tt(before) statically registered ones (the ones added by
+var(vcs_info_hookadd)).
You may pass data between functions via an associative array, tt(user_data).
For example:
@@ -1292,6 +1311,11 @@ When setting tt(ret) to non-zero, the string in
tt(${hook_com[guards-string]}) will be used in the var(%g) escape in the
tt(patch-format) and tt(nopatch-format) styles.
)
+item(tt(no-vcs))(
+This hooks is called when no version control system was detected.
+
+The `hook_com' parameter is not used.
+)
item(tt(post-quilt))(
Called after the tt(quilt) support is done. The following information
is passed as arguments to the hook: 1. the quilt-support mode (`addon' or
@@ -1309,7 +1333,7 @@ The `tt(hook_com)' keys considered are `tt(branch)' and `tt(revision)'.
They are set to the values figured out so far by var(vcs_info) and any
change will be used directly when the actual replacement is done.
-If tt(ret) is set to to non-zero, the string in
+If tt(ret) is set to non-zero, the string in
tt(${hook_com[branch-replace]}) will be used unchanged as the
`tt(%b)' replacement in the variables set by var(vcs_info).
)
@@ -1321,7 +1345,7 @@ The `tt(hook_com)' keys considered are `tt(hash)' and `tt(localrev)'.
They are set to the values figured out so far by var(vcs_info) and any
change will be used directly when the actual replacement is done.
-If tt(ret) is set to to non-zero, the string in
+If tt(ret) is set to non-zero, the string in
tt(${hook_com[rev-replace]}) will be used unchanged as the
`tt(%i)' replacement in the variables set by var(vcs_info).
)
@@ -1346,7 +1370,7 @@ so even if you changed a value to your liking you can still get the
original value in the next run. Changing the `tt(_orig)' values is
probably not a good idea.
-If tt(ret) is set to to non-zero, the string in
+If tt(ret) is set to non-zero, the string in
tt(${hook_com[message]}) will be used unchanged as the message by
var(vcs_info).
)
@@ -1771,22 +1795,6 @@ The tt(word-context) style is implemented by the function
tt(match-word-context). This should not usually need to be called
directly.
)
-tindex(delete-whole-word-match)
-item(tt(delete-whole-word-match))(
-This is another function which works like the tt(-match) functions
-described immediately above, i.e. using styles to decide the word
-boundaries. However, it is not a replacement for any existing function.
-
-The basic behaviour is to delete the word around the cursor. There is no
-numeric prefix handling; only the single word around the cursor is
-considered. If the widget contains the string tt(kill), the removed text
-will be placed in the cutbuffer for future yanking. This can be obtained
-by defining tt(kill-whole-word-match) as follows:
-
-example(zle -N kill-whole-word-match delete-whole-word-match)
-
-and then binding the widget tt(kill-whole-word-match).
-)
tindex(copy-earlier-word)
item(tt(copy-earlier-word))(
This widget works like a combination of tt(insert-last-word) and
@@ -1818,6 +1826,33 @@ This widget allows the cursor to be easily moved to the other interesting
spots. It can be invoked repeatedly to cycle between all positions
reported by the completion system.
)
+tindex(delete-whole-word-match)
+item(tt(delete-whole-word-match))(
+This is another function which works like the tt(-match) functions
+described immediately above, i.e. using styles to decide the word
+boundaries. However, it is not a replacement for any existing function.
+
+The basic behaviour is to delete the word around the cursor. There is no
+numeric prefix handling; only the single word around the cursor is
+considered. If the widget contains the string tt(kill), the removed text
+will be placed in the cutbuffer for future yanking. This can be obtained
+by defining tt(kill-whole-word-match) as follows:
+
+example(zle -N kill-whole-word-match delete-whole-word-match)
+
+and then binding the widget tt(kill-whole-word-match).
+)
+tindex(down-line-or-beginning-search)
+tindex(up-line-or-beginning-search)
+item(tt(up-line-or-beginning-search), tt(down-line-or-beginning-search))(
+These widgets are similar to the builtin functions tt(up-line-or-search)
+and tt(down-line-or-search): if in a multiline buffer they move up or
+down within the buffer, otherwise they search for a history line matching
+the start of the current line. In this case, however, they search for
+a line which matches the current line up to the current cursor position, in
+the manner of tt(history-beginning-search-backward) and tt(-forward), rather
+than the first word on the line.
+)
tindex(edit-command-line)
item(tt(edit-command-line))(
Edit the command line using your visual editor, as in tt(ksh).
@@ -1890,17 +1925,6 @@ example(autoload -U history-pattern-search
zle -N history-pattern-search-backward history-pattern-search
zle -N history-pattern-search-forward history-pattern-search)
)
-tindex(up-line-or-beginning-search)
-tindex(down-line-or-beginning-search)
-item(tt(up-line-or-beginning-search), tt(down-line-or-beginning-search))(
-These widgets are similar to the builtin functions tt(up-line-or-search)
-and tt(down-line-or-search): if in a multiline buffer they move up or
-down within the buffer, otherwise they search for a history line matching
-the start of the current line. In this case, however, they search for
-a line which matches the current line up to the current cursor position, in
-the manner of tt(history-beginning-search-backward) and tt(-forward), rather
-than the first word on the line.
-)
tindex(incarg)
vindex(incarg, use of)
item(tt(incarg))(
@@ -1964,7 +1988,7 @@ See tt(insert-unicode-char) for an alternative way of inserting Unicode
characters using their hexadecimal character number.
The set of accented characters is reasonably complete up to Unicode
-character U+0180, the set of special characters less so. However, it it
+character U+0180, the set of special characters less so. However, it
is very sporadic from that point. Adding new characters is easy,
however; see the function tt(define-composed-chars). Please send any
additions to tt(zsh-workers@zsh.org).
@@ -2130,6 +2154,17 @@ into the command line.
example(bindkey '^Xf' insert-files)
)
+tindex(insert-unicode-char)
+item(tt(insert-unicode-char))(
+When first executed, the user inputs a set of hexadecimal digits.
+This is terminated with another call to tt(insert-unicode-char).
+The digits are then turned into the corresponding Unicode character.
+For example, if the widget is bound to tt(^XU), the character sequence
+`tt(^XU 4 c ^XU)' inserts tt(L) (Unicode U+004c).
+
+See tt(insert-composed-char) for a way of inserting characters
+using a two-character mnemonic.
+)
tindex(narrow-to-region)
tindex(narrow-to-region-invisible)
xitem(tt(narrow-to-region [ -p) var(pre) tt(] [ -P) var(post) tt(]))
@@ -2187,17 +2222,6 @@ narrow-to-region -p $'Editing restricted region\n' \
zle recursive-edit
narrow-to-region -R state)
)
-tindex(insert-unicode-char)
-item(tt(insert-unicode-char))(
-When first executed, the user inputs a set of hexadecimal digits.
-This is terminated with another call to tt(insert-unicode-char).
-The digits are then turned into the corresponding Unicode character.
-For example, if the widget is bound to tt(^XU), the character sequence
-`tt(^XU 4 c ^XU)' inserts tt(L) (Unicode U+004c).
-
-See tt(insert-composed-char) for a way of inserting characters
-using a two-character mnemonic.
-)
tindex(predict-on)
tindex(predict-off)
item(tt(predict-on))(
@@ -2325,6 +2349,25 @@ tt(narrow-to-region-invisible) widget. One limitation of the current
version is that tt(undo) will cycle through changes to the replacement
and source strings before undoing the replacement itself.
)
+tindex(send-invisible)
+item(tt(send-invisible))(
+This is similar to read-from-minibuffer in that it may be called as a
+function from a widget or as a widget of its own, and interactively reads
+input from the keyboard. However, the input being typed is concealed and
+a string of asterisks (`tt(*)') is shown instead. The value is saved in
+the paramter tt($INVISIBLE) to which a reference is inserted into the
+editing buffer at the restored cursor position. If the read was aborted
+by a keyboard break (typically tt(^G)) or another escape from editing such
+as tt(push-line), tt($INVISIBLE) is set to empty and the original buffer
+is restored unchanged.
+
+If one argument is supplied to the function it is taken as a prompt,
+otherwise `tt(Non-echoed text: )' is used (as in emacs). If a second and
+third argument are supplied they are used to begin and end the reference
+to tt($INVISIBLE) that is inserted into the buffer. The default is to
+open with tt(${), then tt(INVISIBLE), and close with tt(}), but many
+other effects are possible.
+)
tindex(smart-insert-last-word)
item(tt(smart-insert-last-word))(
This function may replace the tt(insert-last-word) widget, like so:
@@ -3000,7 +3043,7 @@ tt(firefox mozilla netscape opera konqueror).
)
item(tt(tty-browsers))(
An array similar to tt(x-browsers), except that it gives browsers to
-use use when no X Window display is available. The default is
+use when no X Window display is available. The default is
tt(elinks links lynx).
)
item(tt(command))(
diff --git a/Doc/Zsh/expn.yo b/Doc/Zsh/expn.yo
index d246c3c23..ce122cade 100644
--- a/Doc/Zsh/expn.yo
+++ b/Doc/Zsh/expn.yo
@@ -381,7 +381,7 @@ Each part of a command argument that takes the form
`tt(<LPAR())var(list)tt(RPAR())',
`tt(>LPAR())var(list)tt(RPAR())' or
`tt(=LPAR())var(list)tt(RPAR())'
-is subject to process substitution. The expression may be preceeded
+is subject to process substitution. The expression may be preceded
or followed by other strings except that, to prevent clashes with
commonly occurring strings and patterns, the last
form must occur at the start of a command argument, and the forms
@@ -588,7 +588,7 @@ remove the non-matched elements).
xitem(tt(${)var(name)tt(:)var(offset)tt(}))
item(tt(${)var(name)tt(:)var(offset)tt(:)var(length)tt(}))(
This syntax gives effects similar to parameter subscripting
-in the form tt($)var(name)tt({)var(start)tt(,)var(end)tt(}), but is
+in the form tt($)var(name)tt([)var(start)tt(,)var(end)tt(]), but is
compatible with other shells; note that both var(offset) and var(length)
are interpreted differently from the components of a subscript.
@@ -608,8 +608,12 @@ the option tt(KSH_ARRAYS).
A negative offset counts backwards from the end of the scalar or array,
so that -1 corresponds to the last character or element, and so on.
-var(length) is always treated directly as a length and hence may not be
-negative. The option tt(MULTIBYTE) is obeyed, i.e. the offset and length
+When positive, var(length) counts from the var(offset) position
+toward the end of the scalar or array. When negative, var(length)
+counts back from the end. If this results in a position smaller
+than var(offset), a diagnostic is printed and nothing is substituted.
+
+The option tt(MULTIBYTE) is obeyed, i.e. the offset and length
count multibyte characters where appropriate.
var(offset) and var(length) undergo the same set of shell substitutions
@@ -635,7 +639,7 @@ tt(${)var(name)tt(:-)var(word)tt(}) form of substitution. Instead, a space
may be inserted before the tt(-). Furthermore, neither var(offset) nor
var(length) may begin with an alphabetic character or tt(&) as these are
used to indicate history-style modifiers. To substitute a value from a
-variable, the recommended approach is to proceed it with a tt($) as this
+variable, the recommended approach is to precede it with a tt($) as this
signifies the intention (parameter substitution can easily be rendered
unreadable); however, as arithmetic substitution is performed, the
expression tt(${var: offs}) does work, retrieving the offset from
@@ -809,7 +813,7 @@ item(tt(@))(
In double quotes, array elements are put into separate words.
E.g., `tt("${(@)foo}")' is equivalent to `tt("${foo[@]}")' and
`tt("${(@)foo[1,2]}")' is the same as `tt("$foo[1]" "$foo[2]")'.
-This is distinct from em(field splitting) by the the tt(f), tt(s)
+This is distinct from em(field splitting) by the tt(f), tt(s)
or tt(z) flags, which still applies within each array element.
)
item(tt(A))(
@@ -859,6 +863,14 @@ item(tt(F))(
Join the words of arrays together using newline as a separator.
This is a shorthand for `tt(pj:\n:)'.
)
+item(tt(g:opts:))(
+Process escape sequences like the echo builtin when no options are given
+(tt(g::)). With the tt(o) option, octal escapes don't take a leading
+zero. With the tt(c) option, sequences like `tt(^X)' are also processed.
+With the tt(e) option, processes `tt(\M-t)' and similar sequences like the
+print builtin. With both of the tt(o) and tt(e) options, behaves like the
+print builtin except that in none of these modes is `tt(\c)' interpreted.
+)
item(tt(i))(
Sort case-insensitively. May be combined with `tt(n)' or `tt(O)'.
)
@@ -1104,7 +1116,9 @@ Force field splitting at the
separator var(string). Note that a var(string) of two or more
characters means that all of them must match in sequence; this differs from
the treatment of two or more characters in the tt(IFS) parameter.
-See also the tt(=) flag and the tt(SH_WORD_SPLIT) option.
+See also the tt(=) flag and the tt(SH_WORD_SPLIT) option. An empty
+string may also be given in which case every character will be a separate
+element.
For historical reasons, the usual behaviour that empty array elements
are retained inside double quotes is disabled for arrays generated
@@ -1288,8 +1302,9 @@ item(tt(11.) em(Case modification))(
Any case modification from one of the flags tt((L)), tt((U)) or tt((C))
is applied.
)
-item(tt(12.) em(Prompt evaluation))(
-Any prompt-style formatting from the tt((%)) family of flags is applied.
+item(tt(12.) em(Escape sequence replacement))(
+First any replacements from the tt((g)) flag are performed, then any
+prompt-style formatting from the tt((%)) family of flags is applied.
)
item(tt(13.) em(Quote application))(
Any quoting or unquoting using tt((q)) and tt((Q)) and related flags
@@ -1517,8 +1532,12 @@ cindex(directories, named, dynamic)
cindex(named directories, dynamic)
cindex(dynamic named directories)
-The feature described here is only available if the shell function
-tt(zsh_directory_name) exists.
+If the function tt(zsh_directory_name) exists, or the shell variable
+tt(zsh_directory_name_functions) exists and contains an array of
+function names, then the functions are used to implement dynamic
+directory naming. The functions are tried in order until one returns
+status zero, so it is important that functions test whether they can
+handle the case in question and return an appropriate status.
A `tt(~)' followed by a string var(namstr) in unquoted square brackets is
treated specially as a dynamic directory name. Note that the first
@@ -1529,11 +1548,12 @@ which is the directory corresponding to the name and return status zero
(executing an assignment as the last statement is usually sufficient), or
it should return status non-zero. In the former case the element of reply
is used as the directory; in the latter case the substitution is deemed to
-have failed and tt(NOMATCH) handling is applied if the option is set.
+have failed. If all functions fail and the option tt(NOMATCH) is set,
+an error results.
-The function tt(zsh_directory_name) is also used to see if a directory can
+The functions defined as above are also used to see if a directory can
be turned into a name, for example when printing the directory stack or
-when expanding tt(%~) in prompts. In this case the function is passed two
+when expanding tt(%~) in prompts. In this case each function is passed two
arguments: the string tt(d) (for directory) and the candidate for dynamic
naming. The function should either return non-zero status, if the
directory cannot be named by the function, or it should set the array reply
@@ -1551,7 +1571,15 @@ parts of the directory path, as described below; it is used if the prefix
length matched (16 in the example) is longer than that matched by any
static name.
-The completion system calls `tt(zsh_directory_name c)' in order to
+It is not a requirement that a function implements both
+tt(n) and tt(d) calls; for example, it might be appropriate for certain
+dynamic forms of expansion not to be contracted to names. In that case
+any call with the first argument tt(d) should cause a non-zero status to
+be returned.
+
+The completion system calls `tt(zsh_directory_name c)' followed by
+equivalent calls to elements of the array
+tt(zsh_directory_name_functions), if it exists, in order to
complete dynamic names for directories. The code for this should be
as for any other completion function as described in
ifnzman(noderef(Completion System))\
diff --git a/Doc/Zsh/ftp_sites.yo b/Doc/Zsh/ftp_sites.yo
new file mode 100644
index 000000000..3ed675ab1
--- /dev/null
+++ b/Doc/Zsh/ftp_sites.yo
@@ -0,0 +1,28 @@
+startitem()
+item(Primary site)(
+nofill(tt(ftp://ftp.zsh.org/pub/)
+tt(http://www.zsh.org/pub/))
+)
+item(Australia)(
+nofill(tt(ftp://ftp.zsh.org/pub/)
+tt(http://www.zsh.org/pub/))
+)
+item(Denmark)(
+nofill(tt(ftp://mirrors.dotsrc.org/zsh/))
+)
+item(Finland)(
+nofill(tt(ftp://ftp.funet.fi/pub/unix/shells/zsh/))
+)
+item(France)(
+nofill(tt(ftp://nephtys.lip6.fr/pub/unix/shells/zsh/))
+)
+item(Germany)(
+nofill(tt(ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/))
+)
+item(Hungary)(
+nofill(tt(ftp://ftp.kfki.hu/pub/packages/zsh/))
+)
+item(Poland)(
+nofill(tt(ftp://sunsite.icm.edu.pl/pub/unix/shells/zsh/))
+)
+enditem()
diff --git a/Doc/Zsh/func.yo b/Doc/Zsh/func.yo
index 5f8df990e..28bc6329a 100644
--- a/Doc/Zsh/func.yo
+++ b/Doc/Zsh/func.yo
@@ -348,19 +348,32 @@ enditem()
findex(trap, use of)
The functions beginning `tt(TRAP)' may alternatively be defined with the
-tt(trap) builtin: this may be preferable for some uses, as they are then
-run in the environment of the calling process, rather than in their own
-function environment. Apart from the difference in calling procedure and
-the fact that the function form appears in lists of functions, the forms
+tt(trap) builtin: this may be preferable for some uses. Setting a trap
+with one form removes any trap of the other form for the same signal;
+removing a trap in either form removes all traps for the same signal.
+The forms
example(TRAPNAL+LPAR()RPAR() {
# code
})
-and
+('function traps') and
example(trap '
# code
' NAL)
-are equivalent.
+('list traps') are equivalent in most ways, the exceptions being the
+following:
+
+startitemize()
+itemiz(Function traps have all the properties of normal functions,
+appearing in the list of functions and being called with their own
+function context rather than the context where the trap was triggered.)
+itemiz(The return status from function traps is special, whereas a return
+from a list trap causes the surrounding context to return with the given
+status.)
+itemiz(Function traps are not reset within subshells, in accordance with
+zsh behaviour; list traps are reset, in accordance with POSIX
+behaviour.)
+enditemize()
diff --git a/Doc/Zsh/metafaq.yo b/Doc/Zsh/metafaq.yo
index 838c93815..34cd70e32 100644
--- a/Doc/Zsh/metafaq.yo
+++ b/Doc/Zsh/metafaq.yo
@@ -25,65 +25,7 @@ mirroring tt(ftp.cs.elte.hu) instead of the primary site.
cindex(FTP sites for zsh)
cindex(acquiring zsh by FTP)
cindex(availability of zsh)
-startitem()
-item(Primary site)(
-nofill(tt(ftp://ftp.zsh.org/pub/zsh/)
-tt(http://www.zsh.org/pub/zsh/))
-)
-item(Australia)(
-nofill(tt(ftp://ftp.zsh.org/pub/zsh/)
-tt(http://www.zsh.org/pub/zsh/))
-)
-item(Finland)(
-nofill(tt(ftp://ftp.funet.fi/pub/unix/shells/zsh/))
-)
-item(Germany)(
-nofill(tt(ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/) em((H))
-tt(ftp://ftp.gmd.de/packages/zsh/)
-tt(ftp://ftp.uni-trier.de/pub/unix/shell/zsh/))
-)
-item(Hungary)(
-nofill(tt(ftp://ftp.cs.elte.hu/pub/zsh/)
-tt(http://www.cs.elte.hu/pub/zsh/)
-tt(ftp://ftp.kfki.hu/pub/packages/zsh/))
-)
-item(Israel)(
-nofill(tt(ftp://ftp.math.technion.ac.il/pub/zsh/)
-tt(http://www.math.technion.ac.il/pub/zsh/))
-)
-item(Japan)(
-nofill(tt(ftp://ftp.win.ne.jp/pub/shell/zsh/))
-)
-item(Korea)(
-nofill(tt(ftp://linux.sarang.net/mirror/system/shell/zsh/))
-)
-item(Netherlands)(
-nofill(tt(ftp://ftp.demon.nl/pub/mirrors/zsh/))
-)
-item(Norway)(
-nofill(tt(ftp://ftp.uit.no/pub/unix/shells/zsh/))
-)
-item(Poland)(
-nofill(tt(ftp://sunsite.icm.edu.pl/pub/unix/shells/zsh/))
-)
-item(Romania)(
-nofill(tt(ftp://ftp.roedu.net/pub/mirrors/ftp.zsh.org/pub/zsh/)
-tt(ftp://ftp.kappa.ro/pub/mirrors/ftp.zsh.org/pub/zsh/))
-)
-item(Slovenia)(
-nofill(tt(ftp://ftp.siol.net/mirrors/zsh/))
-)
-item(Sweden)(
-nofill(tt(ftp://ftp.lysator.liu.se/pub/unix/zsh/))
-)
-item(UK)(
-nofill(tt(ftp://ftp.net.lut.ac.uk/zsh/)
-tt(ftp://sunsite.org.uk/packages/zsh/))
-)
-item(USA)(
-nofill(tt(http://zsh.open-mirror.com/))
-)
-enditem()
+INCLUDEFILE(Zsh/ftp_sites.yo)\
The up-to-date source code is available via anonymous CVS and Git from
Sourceforge. See tt(http://sourceforge.net/projects/zsh/) for details.
diff --git a/Doc/Zsh/mod_complist.yo b/Doc/Zsh/mod_complist.yo
index 954710cbc..09b2b4f8b 100644
--- a/Doc/Zsh/mod_complist.yo
+++ b/Doc/Zsh/mod_complist.yo
@@ -383,8 +383,8 @@ make the longest unambiguous string be inserted in the command line
and tt(undo) and tt(backward-delete-char) go back to the previous set
of matches
)
-item(tt(history-incremental-search-forward),
-tt(history-incremental-search-backward))(
+xitem(tt(history-incremental-search-forward))
+item(tt(history-incremental-search-backward))(
this starts incremental searches in the list of completions displayed;
in this mode, tt(accept-line) only leaves incremental search, going
back to the normal menu selection mode
diff --git a/Doc/Zsh/mod_parameter.yo b/Doc/Zsh/mod_parameter.yo
index d553070a8..5948d74f2 100644
--- a/Doc/Zsh/mod_parameter.yo
+++ b/Doc/Zsh/mod_parameter.yo
@@ -164,6 +164,12 @@ item(tt(userdirs))(
This associative array maps user names to the pathnames of their home
directories.
)
+vindex(usergroups)
+item(tt(usergroups))(
+This associative array maps names of system groups of which the current
+user is a member to the corresponding group identifiers. The contents
+are the same as the groups output by the tt(id) command.
+)
vindex(funcfiletrace)
item(tt(funcfiletrace))(
This array contains the absolute line numbers and corresponding file
diff --git a/Doc/Zsh/mod_sched.yo b/Doc/Zsh/mod_sched.yo
index 03ef3e54b..948001baf 100644
--- a/Doc/Zsh/mod_sched.yo
+++ b/Doc/Zsh/mod_sched.yo
@@ -39,6 +39,10 @@ the shell to clear the command line before the event and redraw it
afterwards. This should be used with any scheduled event that produces
visible output to the terminal; it is not needed, for example, with
output that updates a terminal emulator's title bar.
+
+The tt(sched) builtin is not made available by default when the shell
+starts in a mode emulating another shell. It can be made available
+with the command `tt(zmodload -F zsh/sched b:sched)'.
)
enditem()
diff --git a/Doc/Zsh/mod_zutil.yo b/Doc/Zsh/mod_zutil.yo
index d3699b158..1838eab5e 100644
--- a/Doc/Zsh/mod_zutil.yo
+++ b/Doc/Zsh/mod_zutil.yo
@@ -178,7 +178,7 @@ item(tt(zregexparse))(
This implements some internals of the tt(_regex_arguments) function.
)
findex(zparseopts)
-item(tt(zparseopts) [ tt(-D) ] [ tt(-K) ] [ tt(-E) ] [ tt(-a) var(array) ] [ tt(-A) var(assoc) ] var(specs))(
+item(tt(zparseopts) [ tt(-D) ] [ tt(-K) ] [ tt(-M) ] [ tt(-E) ] [ tt(-a) var(array) ] [ tt(-A) var(assoc) ] var(specs))(
This builtin simplifies the parsing of options in positional parameters,
i.e. the set of arguments given by tt($*). Each var(spec) describes one
option and must be of the form `var(opt)[tt(=)var(array)]'. If an option
@@ -255,6 +255,15 @@ options and with the `tt(=)var(array)' forms are kept unchanged when none
of the var(specs) for them is used. This allows assignment of default
values to them before calling tt(zparseopts).
)
+item(tt(-M))(
+This changes the assignment rules to implement a map among equivalent
+option names. If any var(spec) uses the `tt(=)var(array)' form, the
+string var(array) is interpreted as the name of another var(spec),
+which is used to choose where to store the values. If no other var(spec)
+is found, the values are stored as usual. This changes only the way the
+values are stored, not the way tt($*) is parsed, so results may be
+unpredicable if the `var(name)tt(+)' specifier is used inconsistently.
+)
item(tt(-E))(
This changes the parsing rules to em(not) stop at the first string
that isn't described by one of the var(spec)s. It can be used to test
@@ -288,5 +297,15 @@ set -- -a x -c z arg1 arg2)
I.e., the option tt(-b) and its arguments are taken from the
positional parameters and put into the array tt(bar).
+
+The tt(-M) option can be used like this:
+
+example(set -- -a -bx -c y -cz baz -cend
+zparseopts -A bar -M a=foo b+: c:=b)
+
+to have the effect of
+
+example(foo=(-a)
+bar=(-a '' -b xyz))
)
enditem()
diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo
index a96597157..0e0176227 100644
--- a/Doc/Zsh/options.yo
+++ b/Doc/Zsh/options.yo
@@ -683,8 +683,12 @@ item(tt(SH_GLOB) <K> <S>)(
Disables the special meaning of `tt(LPAR())', `tt(|)', `tt(RPAR())'
and 'tt(<)' for globbing the result of parameter and command substitutions,
and in some other places where
-the shell accepts patterns. This option is set by default if zsh is
-invoked as tt(sh) or tt(ksh).
+the shell accepts patterns. If tt(SH_GLOB) is set but tt(KSH_GLOB) is
+not, the shell allows the interpretation of
+subshell expressions enclosed in parentheses in some cases where there
+is no space before the opening parenthesis, e.g. tt(!LPAR()true+RPAR())
+is interpreted as if there were a space after the tt(!). This option is
+set by default if zsh is invoked as tt(sh) or tt(ksh).
)
pindex(UNSET)
pindex(NO_UNSET)
@@ -1866,6 +1870,10 @@ tt(source),
tt(times),
tt(trap) and
tt(unset).
+
+In addition, various error conditions associated with the above builtins
+or tt(exec) cause a non-interactive shell to exit and an interactive
+shell to return to its top-level processing.
)
pindex(POSIX_IDENTIFIERS)
pindex(NO_POSIX_IDENTIFIERS)
@@ -2016,7 +2024,7 @@ pindex(NO_LOGIN)
pindex(NOLOGIN)
item(tt(LOGIN) (tt(-l), ksh: tt(-l)))(
This is a login shell.
-If this option is not explicitly set, the shell is a login shell if
+If this option is not explicitly set, the shell becomes a login shell if
the first character of the tt(argv[0]) passed to the shell is a `tt(-)'.
)
pindex(PRIVILEGED)
diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo
index d0255af5a..22a00f5c2 100644
--- a/Doc/Zsh/params.yo
+++ b/Doc/Zsh/params.yo
@@ -1158,8 +1158,8 @@ item(tt(PROMPT_EOL_MARK))(
When the tt(PROMPT_CR) and tt(PROMPT_SP) options are set, the
tt(PROMPT_EOL_MARK) parameter can be used to customize how the end of
partial lines are shown. This parameter undergoes prompt expansion, with
-the tt(PROMPT_PERCENT) option set. If not set or empty, the default
-behavior is equivalent to the value `tt(%B%S%#%s%b)'.
+the tt(PROMPT_PERCENT) option set. If not set, the default behavior is
+equivalent to the value `tt(%B%S%#%s%b)'.
)
vindex(PS1)
item(tt(PS1) <S>)(
@@ -1273,6 +1273,13 @@ is necessary to make such an assignment upon any change to the terminal
definition database or terminal type in order for the new settings to
take effect.
)
+vindex(TERMINFO)
+item(tt(TERMINFO) <S>)(
+A reference to a compiled description of the terminal, used by the
+`terminfo' library when the system has it; see manref(terminfo)(5).
+If set, this causes the shell to reinitialise the terminal, making
+the workaround `tt(TERM=$TERM)' unnecessary.
+)
vindex(TIMEFMT)
item(tt(TIMEFMT))(
The format of process time reports with the tt(time) keyword.
diff --git a/Doc/Zsh/zle.yo b/Doc/Zsh/zle.yo
index 591593d38..5f4d639d3 100644
--- a/Doc/Zsh/zle.yo
+++ b/Doc/Zsh/zle.yo
@@ -842,10 +842,7 @@ specifies that the first twenty characters of the text including
any predisplay string should be highlighted in bold.
Note that the effect of tt(region_highlight) is not saved and disappears
-as soon as the line is accepted. The line editor makes no attempt to
-keep the highlighting effect synchronised with the line as it is edited;
-hence region highlighting is best limited to static effects within
-user widgets.
+as soon as the line is accepted.
)
vindex(WIDGET)
item(tt(WIDGET) (scalar))(
@@ -857,7 +854,7 @@ The name of the shell function that implements a widget defined with
either tt(zle -N) or tt(zle -C). In the former case, this is the second
argument to the tt(zle -N) command that defined the widget, or
the first argument if there was no second argument. In the latter case
-this is the the third argument to the tt(zle -C) command that defined the
+this is the third argument to the tt(zle -C) command that defined the
widget. Read-only.
)
vindex(WIDGETSTYLE)
@@ -926,6 +923,10 @@ item(tt(zle-line-finish))(
This is similar to tt(zle-line-init) but is executed every time the
line editor has finished reading a line of input.
)
+tindex(zle-history-line-set)
+item(tt(zle-history-line-set))(
+Executed when the history line changes.
+)
tindex(zle-keymap-select)
item(tt(zle-keymap-select))(
Executed every time the keymap changes, i.e. the special parameter
@@ -1865,7 +1866,7 @@ executed as a shell command.
tindex(accept-line-and-down-history)
item(tt(accept-line-and-down-history) (^O) (unbound) (unbound))(
Execute the current line, and push the next history
-event on the the buffer stack.
+event on the buffer stack.
)
tindex(auto-suffix-remove)
item(tt(auto-suffix-remove))(
@@ -2149,7 +2150,7 @@ column of the cursor in the current line.
)
tindex(where-is)
item(tt(where-is))(
-Read the name of an editor command and and print the listing of key
+Read the name of an editor command and print the listing of key
sequences that invoke the specified command.
A restricted set of editing functions is available in the
mini-buffer. Keys are looked up in the special
@@ -2350,6 +2351,11 @@ Not all systems support this: for it to work, the system's representation of
wide characters must be code values from the Universal Character Set,
as defined by IS0 10646 (also known as Unicode).
)
+item(Wrapped double-width characters)(
+When a double-width character appears in the final column of a line, it
+is instead shown on the next line. The empty space left in the original
+position is highlighted as a special character.
+)
enditem()
If tt(zle_highlight) is not set or no value applies to a particular