X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=e34d9050232303a781951abe0559b2c63740d9cd;hb=73ed8a1af74805e72a81c329fb9fac35b154d600;hp=779d0dde656e7706bdc68c8d7ef6bda1164ac9ba;hpb=b55cf4872f4553ae4a3a28f34123e4b5c786392e;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 779d0dd..e34d905 100644 --- a/zsh/rc +++ b/zsh/rc @@ -509,10 +509,20 @@ setopt completeinword zstyle ':completion:::::' completer \ _expand _complete _prefix _ignored _approximate -# Try uppercase if the currently typed string doesn't match. This allows -# typing in lowercase most of the time and completion fixes the case. Don't -# perform these fixes in _approximate to prevent it from changing the input -# too much. Thanks to the book "From Bash to Z Shell" page 249. +# Match specification to be tried when completing items. Each group ('...') is +# tried after another if no matches were found, once matches are found no +# other groups are tried. Thanks to Mikachu in #zsh on Freenode (2012-08-28 +# 18:48 CEST) for explanations. +# +# When matching also include the uppercase variant of typed characters +# ('m:{a-z}={A-Z}'); using '' before this group would try the unmodified match +# first, but I prefer to get all matches immediately (e.g. if Makefile and +# makefile exist in the current directory echo m matches both, with '' it +# would only match makefile because it found one match). This allows typing in +# lowercase most of the time and completion fixes the case, which is faster. +# +# Don't perform these fixes in _approximate to prevent it from changing the +# input too much. Thanks to the book "From Bash to Z Shell" page 249. zstyle ':completion:*:(^approximate):*' matcher-list 'm:{a-z}={A-Z}' # Allow one mistake per three characters. Thanks to the book "From Bash to Z @@ -645,17 +655,17 @@ fi # Display all branches (except stash) in gitk but only 200 commits as this is # much faster. Also put in the background and disown. Thanks to drizzd in #git # on Freenode (2010-04-03 17:55 CEST). -gitk() { +(( $+commands[gitk] )) && gitk() { command gitk --max-count=200 --branches --remotes --tags "$@" & disown %command } # Same for tig (except the disown part as it's no GUI program). -tig() { +(( $+commands[tig] )) && tig() { command tig --max-count=200 --branches --remotes --tags "$@" } # Pipe output through less. -tree() { +(( $+commands[tree] )) && tree() { command tree -C "$@" | less }