From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27741 invoked from network); 8 May 2001 17:59:36 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 8 May 2001 17:59:36 -0000 Received: (qmail 3637 invoked by alias); 8 May 2001 17:59:28 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 14266 Received: (qmail 3616 invoked from network); 8 May 2001 17:59:28 -0000 X-VirusChecked: Checked Sender: kiddleo@cav.logica.co.uk Message-ID: <3AF833DA.85B97A2E@u.genie.co.uk> Date: Tue, 08 May 2001 18:58:50 +0100 From: Oliver Kiddle X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.2.15 i686) X-Accept-Language: en MIME-Version: 1.0 To: zsh-workers@sunsite.dk Subject: example startup file Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 functions. 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. Oliver --- /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=(~/.zfunc) +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 -do - autoload $dirname/*(.x:t) -done +#for dirname in $fpath; do +# autoload $dirname/*(.x:t) +#done # 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 @@ DIRSTACKSIZE=20 # 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 +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 http://www.messagelabs.com/stats.asp