4

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)

1 Answer 1

2

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.

1
  • 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, 2012 at 8:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .