Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

example startup file

This is a suggestion for the example zshrc in StartupFiles. I think we
should be encouraging the use of new style completion so the main
change here is to enable it. All deleted compctls have equivalent or
similiar examples in compctl-examples.

I think I've managed to put together a reasonably varied selection of
mostly simple zstyles including one zstyle -e example.

I've not commited this yet to allow for any objections.

Also, I'm not too happy with the autoload for loop: if it finds no
executable files in a directory it emits an error and returns. Does
anyone have any better suggestions which keep things simple. As I see
it, you either also loop for files or use the N nullglob flag and
redirect outout because autoload with no arguments outputs all

I get directories in fpath duplicated with this .zshrc after compinit
which isn't too good. Maybe typeset -U fpath should be the default?

Etc/FEATURES could also do with an update before 4.0.1. At the very
least to update the count of options, builtins etc. I'm a bit concerned
about the line which says:
	directory stack access with =num
Either this is wrong, has been broken or I'm misunderstanding it.


--- /home/kiddleo/cvs/zsh/StartupFiles/zshrc	Mon Mar 26 00:41:02 2001
+++ zshrc	Tue May  8 18:42:07 2001
@@ -1,5 +1,5 @@
-# Generic .zshrc file for zsh 2.7
+# Example .zshrc file for zsh 4.0
 # .zshrc is sourced in interactive shells.  It
 # should contain commands to set up aliases, functions,
@@ -42,19 +42,19 @@
 # Shell functions
 setenv() { export $1=$2 }  # csh compatibility
+freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done }
 # Where to look for autoloaded function definitions
+fpath=($fpath ~/.zfunc)
 # Autoload all shell functions from all directories
 # in $fpath that have the executable bit on
 # (the executable bit is not necessary, but gives
 # you an easy way to stop the autoloading of a
 # particular shell function).
-for dirname in $fpath
-  autoload $dirname/*(.x:t)
+#for dirname in $fpath; do
+#  autoload $dirname/*(.x:t)
 # Global aliases -- These do not have to be
 # at the beginning of the command line.
@@ -65,10 +65,7 @@
 manpath=($X11HOME/man /usr/man /usr/lang/man /usr/local/man)
 export MANPATH
-# Filename suffixes to ignore during completion
-fignore=(.o .c~ .old .pro)
-# Hosts to use for completion
+# Hosts to use for completion (see later zstyle)
 hosts=(`hostname` ftp.math.gatech.edu prep.ai.mit.edu wuarchive.wustl.edu)
 # Set prompts
@@ -85,7 +82,7 @@
 # Watch for my friends
-#watch=($(cat ~/.friends))      # watch for people in .friends file
+#watch=( $(<~/.friends) )       # watch for people in .friends file
 watch=(notme)                   # watch for everybody but me
 LOGCHECK=300                    # check every 5 min for login/logout activity
 WATCHFMT='%n %a %l from %m at %t.'
@@ -97,28 +94,62 @@
 setopt   autopushd pushdminus extendedglob rcquotes mailwarning
 unsetopt bgnice autoparamslash
-# Setup some basic programmable completions.  To see more examples
-# of these, check Misc/compctl-examples in the zsh distribution.
-compctl -g '*(-/)' cd pushd
-compctl -g '*(/)' rmdir dircmp
-compctl -j -P % -x 's[-] p[1]' -k signals -- kill
-compctl -j -P % fg bg wait jobs disown
-compctl -A shift
-compctl -caF type whence which
-compctl -F unfunction
-compctl -a unalias
-compctl -v unset typeset declare vared readonly export integer
-compctl -e disable
-compctl -d enable
 # Some nice key bindings
 #bindkey '^X^Z' universal-argument ' ' magic-space
 #bindkey '^X^A' vi-find-prev-char-skip
+#bindkey '^Xa' _expand_alias
 #bindkey '^Z' accept-and-hold
 #bindkey -s '\M-/' \\\\
 #bindkey -s '\M-=' \|
-# bindkey -v             # vi key bindings
+# bindkey -v               # vi key bindings
+bindkey -e                 # emacs key bindings
+bindkey ' ' magic-space    # also do history expansion on space
+bindkey '^I' complete-word # complete on tab, leave expansion to _expand
+# Setup new style completion system. To see examples of the old style (compctl
+# based) programmable completion, check Misc/compctl-examples in the zsh
+# distribution.
+autoload -U compinit
+# Completion Styles
+# list of completers to use
+zstyle ':completion:*::::' completer _expand _complete _ignored _approximate
+# allow one error for every three characters typed in approximate completer
+zstyle -e ':completion:*:approximate:*' max-errors \
+    'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'
+# insert all expansions for expand completer
+zstyle ':completion:*:expand:*' tag-order all-expansions
+# formatting and messages
+zstyle ':completion:*' verbose yes
+zstyle ':completion:*:descriptions' format '%B%d%b'
+zstyle ':completion:*:messages' format '%d'
+zstyle ':completion:*:warnings' format 'No matches for: %d'
+zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
+zstyle ':completion:*' group-name ''
+# match uppercase from lowercase
+zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
+# offer indexes before parameters in subscripts
+zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
+# command for process lists, the local web server details and host completion
+#zstyle ':completion:*:processes' command 'ps -o pid,s,nice,stime,args'
+#zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html'
+zstyle '*' hosts $hosts
+# filename suffixes to ignore during completion (except after rm command)
+zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \
+    '*?.old' '*?.pro'
+# the same for old style completion
+#fignore=(.o .c~ .old .pro)
-bindkey -e               # emacs key bindings
-bindkey ' ' magic-space  # also do history expansino on space
+# ignore completion functions (until the _ignored completer)
+zstyle ':completion:*:functions' ignored-patterns '_*'

This message has been checked for all known viruses by the 
MessageLabs Virus Scanning Service. For further information visit

Messages sorted by: Reverse Date, Date, Thread, Author