Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I've got an issue with ZSH autocompletion, and I can't find the right keyworks to get rid of it.

For instance, with files like

$ ls
Accelion, titi toto tata

I would like to write:

$ ls cc<TAB>

and get _no_completion, instead of Accelion.

Here are the option currently set:

$ set -o | grep " on"
alwaystoend           on
autocd                on
autonamedirs          on
autopushd             on
nobeep                on
cdablevars            on
extendedhistory       on
noflowcontrol         on
nohistbeep            on
histexpiredupsfirst   on
histignoredups        on
histignorespace       on
histverify            on
incappendhistory      on
interactive           on
interactivecomments   on
nolistambiguous       on
nolistbeep            on
longlistjobs          on
nonomatch             on
promptsubst           on
pushdignoredups       on
shinstdin             on

let me know if you need further details like zle options (and how to dump it!)

EDIT: zsh 4.3.17 (x86_64-redhat-linux-gnu)

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

You didn't mention what version of zsh you are using. I am assuming version 4.

Your zsh shell is performing matching first instead of true completion as you are probably used to. This behavior can be customized by ordering, and optionally customizing, the completers. You can find more information about how to do that in this guide.

The behavior you are seeing is potentially case-insensitive matching:

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

The quickest way to fix this behavior without delving too deeply into the guide is to either find and comment out the similar line above or run autoload -Uz compinstall and then compinstall. This will walk you through a basic wizard to customize how zsh behaves. It will ask you some questions and then create a simple ~/.zshrc that you can customize as you get more comfortable with the options. Copy your ~/.zshrc off first so you have a reference if there are behaviors you want to retain.

share|improve this answer
    
Thanks, you got it right with matcher-list. I forgot to mention that I use Oh-my-zsh, so just to complete the answer, I found it in lib/completion.zsh and simply commented it out (twice). –  Kevin Apr 24 '12 at 8:58
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.