about summary refs log tree commit diff
path: root/Etc
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-03-19 01:01:12 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-03-19 01:01:12 +0000
commit5bcbbe40dd2c4bfbc41377f70630a768c8b92b35 (patch)
tree3d014f6f834f7b0eb0d94cde95d75247ed2a3148 /Etc
parent52e0ae261aca931d9aa498453d65f2444d415d2b (diff)
downloadzsh-5bcbbe40dd2c4bfbc41377f70630a768c8b92b35.tar.gz
zsh-5bcbbe40dd2c4bfbc41377f70630a768c8b92b35.tar.xz
zsh-5bcbbe40dd2c4bfbc41377f70630a768c8b92b35.zip
Close to current trunk, without multibye section; includes workers/{20900,21095,21490,21492,22053,22272}.
Diffstat (limited to 'Etc')
-rw-r--r--Etc/FAQ.yo184
1 files changed, 103 insertions, 81 deletions
diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo
index 13e444c86..a7bc6dc9c 100644
--- a/Etc/FAQ.yo
+++ b/Etc/FAQ.yo
@@ -43,11 +43,11 @@ whenlatex(report(ARG1)(ARG2)(ARG3))\
 whenman(report(ARG1)(ARG2)(ARG3))\
 whenms(report(ARG1)(ARG2)(ARG3))\
 whensgml(report(ARG1)(ARG2)(ARG3)))
-myreport(Z-Shell Frequently-Asked Questions)(Peter Stephenson)(2005/01/11)
+myreport(Z-Shell Frequently-Asked Questions)(Peter Stephenson)(2005/07/18)
 COMMENT(-- the following are for Usenet and must appear first)\
 description(\
 mydit(Archive-Name:) unix-faq/shell/zsh
-mydit(Last-Modified:) 2005/01/11
+mydit(Last-Modified:) 2005/07/18
 mydit(Submitted-By:) email(pws@pwstephenson.fsnet.co.uk (Peter Stephenson))
 mydit(Posting-Frequency:) Monthly
 mydit(Copyright:) (C) P.W. Stephenson, 1995--2005 (see end of document)
@@ -95,7 +95,7 @@ Chapter 3:  How to get various things to work
 3.2. In which startup file do I put...?
 3.3. What is the difference between `export' and the ALL_EXPORT option?
 3.4. How do I turn off spelling correction/globbing for a single command?
-3.5. How do I get the meta key to work on my xterm?
+3.5. How do I get the Meta key to work on my xterm?
 3.6. How do I automatically display the directory in my xterm title bar?
 3.7. How do I make the completion list use eight bit characters?
 3.8. Why do the cursor (arrow) keys not work?
@@ -289,10 +289,10 @@ sect(On what machines will it run?)
 
 sect(What's the latest version?)
 
-  Zsh 4.2.6 is the latest production version.  A release on the
-  4.3 development branch is imminent; this will contain support
-  for multibyte character strings (such as UTF-8 locales) in the
-  line editor.
+  Zsh 4.2.6 is the latest production version.  The latest development
+  version is 4.3.1; this contains support for multibyte character strings
+  (such as UTF-8 locales) in the line editor, although the rest of the
+  shell does not yet have full multibyte support.
 
   There will not be any further 4.0 releases now that 4.2 has become
   the stable version.
@@ -325,67 +325,44 @@ label(16)
   `testing' subdirectory: such up-to-the-minute development versions should
   only be retrieved if you actually plan to help test the latest version of
   the shell.  The following list also appears on the WWW at
-  url(http://www.zsh.org)(http://www.zsh.org) .
+  url(http://www.zsh.org/)(http://www.zsh.org/) .
 
   description(
-    mydit(Home site) url(ftp://ftp.zsh.org)(ftp://ftp.zsh.org)
-    mydit()          url(http://www.zsh.org/pub/zsh/)
-(http://www.zsh.org/pub/zsh/)
-    mydit(Australia) url(ftp://ftp.ips.gov.au/mirror/zsh/)
-(ftp://ftp.ips.gov.au/mirror/zsh/)
-    mydit(Denmark)   url(ftp://sunsite.dk/pub/unix/shells/zsh)
-(ftp://sunsite.dk/pub/unix/shells/zsh)
+    mydit(Home site) url(ftp://ftp.zsh.org/)(ftp://ftp.zsh.org/)
+    mydit()          (also url(http://www.zsh.org/pub/zsh/)
+(http://www.zsh.org/pub/zsh/))
+    mydit(Denmark)   url(ftp://mirrors.dotsrc.org/zsh/)
+(ftp://mirrors.dotsrc.org/zsh/)
+    mydit()          (also url(http://mirrors.dotsrc.org/zsh/)
+(http://mirrors.dotsrc.org/zsh/))
     mydit(Finland)   url(ftp://ftp.funet.fi/pub/unix/shells/zsh/)
 (ftp://ftp.funet.fi/pub/unix/shells/zsh/)
-    mydit(France)    url(ftp://ftp.cenatls.cena.dgac.fr/shells/zsh/)
-(ftp://ftp.cenatls.cena.dgac.fr/shells/zsh/)
+    mydit(France)    url(ftp://nephtys.lip6.fr/pub/unix/shells/zsh/)
+(ftp://nephtys.lip6.fr/pub/unix/shells/zsh/)
     mydit(Germany)   url(ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/)
 (ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/)
-    mydit()          url(ftp://ftp.uni-trier.de/pub/unix/shell/zsh/)
-(ftp://ftp.uni-trier.de/pub/unix/shell/zsh/)
     mydit(Hungary)   url(ftp://ftp.cs.elte.hu/pub/zsh/)
 (ftp://ftp.cs.elte.hu/pub/zsh/)
     mydit()          (also url(http://www.cs.elte.hu/pub/zsh/)
-(http://www.cs.elte.hu/pub/zsh/) )
+(http://www.cs.elte.hu/pub/zsh/))
     mydit()          url(ftp://ftp.kfki.hu/pub/packages/zsh/)
 (ftp://ftp.kfki.hu/pub/packages/zsh/)
-    mydit(Israel)    \
-url(ftp://ftp.math.technion.ac.il/pub/zsh/)
+    mydit(Israel)    url(ftp://ftp.math.technion.ac.il/pub/zsh/)
 (ftp://ftp.math.technion.ac.il/pub/zsh/)
-    mydit()          \
-url(http://www.math.technion.ac.il/pub/zsh/)
-(http://www.math.technion.ac.il/pub/zsh/)
-    mydit(Italy)     url(ftp://ftp.unina.it/pub/Unix/pkgs/shell/zsh/)
-(ftp://ftp.unina.it/pub/Unix/pkgs/shell/zsh/)
-    mydit(Japan)     url(ftp://ftp.nisiq.net/pub/shells/zsh/)
-(ftp://ftp.nis.co.jp/pub/shells/zsh/)
-    mydit()          url(ftp://ftp.win.ne.jp/pub/shell/zsh/)
-(ftp://ftp.win.ne.jp/pub/shell/zsh/)
-    mydit(Norway)    url(ftp://ftp.uit.no/pub/unix/shells/zsh/)
-(ftp://ftp.uit.no/pub/unix/shells/zsh/)
+    mydit()          (also url(http://www.math.technion.ac.il/pub/zsh/)
+(http://www.math.technion.ac.il/pub/zsh/))
+    mydit(Netherlands) url(ftp://ftp.demon.nl/pub/mirrors/zsh/)
+(ftp://ftp.demon.nl/pub/mirrors/zsh/)
     mydit(Poland)    url(ftp://sunsite.icm.edu.pl/pub/unix/shells/zsh/)
 (ftp://sunsite.icm.edu.pl/pub/unix/shells/zsh/)
-    mydit(Romania)   url(ftp://ftp.roedu.net/pub/mirrors/ftp.zsh.org/pub/zsh/)
-(ftp://ftp.roedu.net/pub/mirrors/ftp.zsh.org/pub/zsh/)
-    mydit()          url(ftp://ftp.kappa.ro/pub/mirrors/ftp.zsh.org/pub/zsh/)
+    mydit(Romania)   url(ftp://ftp.kappa.ro/pub/mirrors/ftp.zsh.org/pub/zsh/)
 (ftp://ftp.kappa.ro/pub/mirrors/ftp.zsh.org/pub/zsh/)
-    mydit(Slovenia)  url(ftp://ftp.siol.net/mirrors/zsh/)
-(ftp://ftp.siol.net/mirrors/zsh/)
     mydit(Sweden)    url(ftp://ftp.lysator.liu.se/pub/unix/zsh/)
 (ftp://ftp.lysator.liu.se/pub/unix/zsh/)
-    mydit(UK)        url(ftp://ftp.net.lut.ac.uk/zsh/)
-(ftp://ftp.net.lut.ac.uk/zsh/)
-    mydit()          (also by FSP at port 21)
-    mydit()          url(ftp://sunsite.org.uk/packages/zsh/)
+    mydit(UK)        url(ftp://sunsite.org.uk/packages/zsh/)
 (ftp://sunsite.org.uk/packages/zsh/)
-    mydit(USA)       url(ftp://uiarchive.uiuc.edu/pub/packages/shells/zsh/)
-(ftp://uiarchive.uiuc.edu/pub/packages/shells/zsh/)
-    mydit()          url(ftp://ftp.rge.com/pub/shells/zsh/)
-(ftp://ftp.rge.com/pub/shells/zsh/)
-    mydit()          url(ftp://foad.org/pub/zsh/)
-(ftp://foad.org/pub/zsh/)
-    mydit()          url(http://foad.org/zsh/)
-(http://foad.org/zsh/)
+    mydit(USA)       url(http://zsh.open-mirror.com/)
+(http://zsh.open-mirror.com/)
   )
 
   The Windows port mentioned above is maintained separately by email(Amol
@@ -394,15 +371,15 @@ url(http://www.math.technion.ac.il/pub/zsh/)
   not be developed further.  You can get it from:
 
   description(
-    mydit()        url(ftp://ftp.blarg.net/users/amol/zsh)
-(ftp://ftp.blarg.net/users/amol/zsh)  
+    mydit()        url(ftp://ftp.blarg.net/users/amol/zsh/)
+(ftp://ftp.blarg.net/users/amol/zsh/)  
   )
 
   There is no port of version 4 for Windows, but newer releases compile under
   Cygwin, a freely available UNIX-style environment for the Win32 API.  You
   can find information about this at 
-  url(http://sourceware.cygnus.com/cygwin)\
-(http://sourceware.cygnus.com/cygwin).
+  url(http://www.cygwin.com/)\
+(http://www.cygwin.com/).
 
   Likewise the OS/2 port is available from email(TAMURA Kent
   <kent@tril.ibm.co.jp>) at
@@ -581,7 +558,7 @@ tt(SH_OPTION_LETTERS),
         tt(NO_NOMATCH)).
     it()* The results of parameter substitutions are treated as plain text:
         mytt(foo="*"; print $foo) prints all files in ksh but mytt(*) in zsh
-        (uset tt(GLOB_SUBST)).
+        (use tt(GLOB_SUBST)).
     it()* tt($PSn) do not do parameter substitution by default (use \
 PROMPT_SUBST).
     it()* Standard globbing does not allow ksh-style `pattern-lists'.
@@ -613,7 +590,6 @@ tt(EXTENDED_GLOB).
         the way to exclude some subdirectories from matching a mytt(**).
     it()  Unquoted assignments do file expansion after mytt(:)s (intended for
         PATHs). 
-    it()  mytt(integer) does not allow mytt(-i).
     it()  mytt(typeset) and mytt(integer) have special behaviour for
         assignments in ksh, but not in zsh.  For example, this doesn't
         work in zsh:
@@ -656,13 +632,14 @@ link(2.3)(23).
   )
   it() Editing:
   itemize(
-    it()  The options tt(emacs), tt(gmacs), tt(viraw) are not supported.
+    it()  The options tt(gmacs), tt(viraw) are not supported.
         Use bindkey to change the editing behaviour: mytt(set -o {emacs,vi})
-        becomes mytt(bindkey -{e,v}); for gmacs, go to emacs mode and use
-        mytt(bindkey \^t gosmacs-transpose-characters).
+        becomes `bindkey -{e,v}', although `set -o emacs' and `set -o vi'
+        are supported for compatibility; for gmacs, go to emacs mode and
+        use `bindkey \^t gosmacs-transpose-characters'.
     it()  The mytt(keyword) option does not exist and mytt(-k) is instead
-        interactivecomments.  (mytt(keyword) will not be in the next ksh
-        release either.)
+        interactivecomments.  (mytt(keyword) is not in recent versions
+        of ksh either.)
     it()* Management of histories in multiple shells is different:
         the history list is not saved and restored after each command.
         The option tt(SHARE_HISTORY) appeared in 3.1.6 and is set in ksh
@@ -679,7 +656,6 @@ link(2.3)(23).
     it()  There is no built-in command newgrp: use e.g. mytt(alias
         newgrp="exec newgrp")
     it()  mytt(jobs) has no mytt(-n) flag.
-    it()  mytt(read) has no mytt(-s) flag.
   )
   it() Other idiosyncrasies:
   itemize(
@@ -830,8 +806,7 @@ label(23)
   as an alias, defining mytt(/bin/ls) and mytt(-F) as functions which call
   mytt(/bin/ls), which gets a bit recursive.  This can be avoided if you use
   mytt(function) to define a function, which doesn't expand aliases.  It is
-  possible to argue for extra warnings somewhere in this mess.  Luckily,
-  it is not possible to define mytt(function) as an alias.
+  possible to argue for extra warnings somewhere in this mess.
 
   Bart Schaefer's rule is:  Define first those aliases you expect to
   use in the body of a function, but define the function first if the
@@ -1177,13 +1152,20 @@ sect(How do I turn off spelling correction/globbing for a single command?)
   be expanded before the rest of the command line is parsed.
 
 
-sect(How do I get the meta key to work on my xterm?)
+sect(How do I get the Meta key to work on my xterm?)
 label(35)
 
-  As stated in the manual, zsh needs to be told about the meta key by
+  The Meta key isn't present on a lot of keyboards, but on some
+  the Alt key has the same effect.  If a character is typed on the
+  keyboard while the Meta key is held down, the characters is sent
+  as terminal input with its eighth bit set.  For example, ASCII
+  mytt(A), hex 65, becomes hex E5.  This is sometimes used to provide
+  extra editing commands.
+
+  As stated in the manual, zsh needs to be told about the Meta key by
   using mytt(bindkey -me) or mytt(bindkey -mv) in your .zshrc or on the
   command line.  You probably also need to tell the terminal driver to
-  allow the `meta' bit of the character through; mytt(stty pass8) is the
+  allow the `Meta' bit of the character through; mytt(stty pass8) is the
   usual incantation.  Sample .zshrc entry:
   verb(
     [[ $TERM = "xterm" ]] && stty pass8 && bindkey -me
@@ -1200,7 +1182,12 @@ label(35)
   have tinkered with it.
 
   You don't need the mytt(bindkey) to be able to define your own sequences
-  with the meta key, though you still need the mytt(stty).
+  with the Meta key, though you still need the mytt(stty).
+
+  If you are using multibyte input directly from the keyboard you
+  probably don't want to use this feature since the eighth bit in
+  each byte is used to indicate a part of a multibyte character.  See
+  link(chapter 5)(c5).
 
 
 sect(How do I automatically display the directory in my xterm title bar?)
@@ -1662,21 +1649,45 @@ sect(How do I get a variable's value to be evaluated as another variable?)
 
 sect(How do I prevent the prompt overwriting output when there is no newline?)
 
-  The problem is, for example,
+  The problem is normally limited to zsh versions prior to 4.3.0 due to the
+  advent of the PROMPT_SP option (which is enabled by default, and eliminates
+  this problem for most terminals).  An example of the overwriting is:
   verb(
     % echo -n foo
     % 
   )
-  and the tt(foo) has been overwritten by the prompt tt(%).  The answer is
-  simple:  put tt(unsetopt promptcr) in your tt(.zshrc).  The option \
-  tt(PROMPT_CR),
-  to print a carriage return before a new prompt, is set by default because
-  a prompt at the right hand side (mytt($RPROMPT), mytt($RPS1)) will not appear
-  in the right place, and multi-line editing will be confused about the line
-  position, unless the line starts in the left hand column.  Apart from
-  tt(PROMPT_CR), you can force this to happen by putting a newline in the
-  prompt (see question link(3.13)(313) for that).
-
+  This shows a case where the word tt(foo) was output without a newline, and
+  then overwritten by the prompt line tt(%).  The reason this happens is that
+  the option tt(PROMPT_CR) is enabled by default, and it outputs a carriage
+  return before the prompt in order to ensure that the line editor knows what
+  column it is in (this is needed to position the right-side prompt correctly
+  (mytt($RPROMPT), mytt($RPS1)) and to avoid screen corruption when performing
+  line editing).  If you add tt(unsetopt promptcr) to your tt(.zshrc), you
+  will see any partial output, but your screen may look weird until you press
+  return or refresh the screen.
+
+  A better solution than disabling PROMPT_CR (for most terminals) is adding
+  a simpler version of the PROMPT_SP functionality to an older zsh using a
+  custom precmd function, like this one:
+  verb(
+    # Skip defining precmd if the PROMPT_SP option is available.
+    if ! eval '[[ -o promptsp ]] 2>/dev/null'; then
+      function precmd {
+        # Output an inverse char and a bunch spaces.  We include
+        # a CR at the end so that any user-input that gets echoed
+        # between this output and the prompt doesn't cause a wrap.
+        print -nP "%B%S%#%s%b${(l:$((COLUMNS-1)):::):-}\r"
+      }
+    fi
+  )
+  That precmd function will only bump the screen down to a new line if there
+  was output on the prompt line, otherwise the extra chars get removed by
+  the PROMPT_CR action.  Although this typically looks fine, it may result
+  in the spaces preceding the prompt being included when you select a line
+  of preserved text with the mouse.
+
+  One final alternative is to put a newline in your prompt -- see question
+  link(3.13)(313) for that.
 
 sect(What's wrong with cut and paste on my xterm?)
 
@@ -1931,6 +1942,16 @@ sect(Suppose I want to complete all files during a special completion?)
   function at that point.  Then change all occurrences of
   `tt(complete-file)' to a name of your own.
 
+  If you simply want to try filename completion as a default when other
+  completions fail, add it to the `tt(completer)' style for normal
+  completion, for example:
+  verb(
+    zstyle ':completion:*' completer _complete _ignored _files
+  )
+  This adds filename completion to the end of the default types of
+  completion.  Your actual completer style may include other actions,
+  such as expansion or approximate completion.
+
 
 chapter(The future of zsh)
 
@@ -2022,8 +2043,9 @@ sect(What's on the wish-list?)
   Some future possibilities which have been suggested:
   itemize(
   it() The shell, in particular the line editor, should support Unicode
-     characters.  Initial support for this should appear in version 4.3,
-     but this is a large job.
+     characters.  Initial support for this appeared in version 4.3;
+     it is reasonably complete in the line editor but patchy elsewhere
+     (note this may require the configuration option --enable-multibyte).
   it() The parameter code could do with tidying up, maybe with more of the
      features made available in ksh93.
   it() Configuration files to enable zsh startup files to be created