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

Re: zsh spinning for ages when I hit tab on directory



On 2011.11.08 at 14:58 +0100, Markus Trippelsdorf wrote:
> On 2011.11.08 at 14:10 +0100, Markus Trippelsdorf wrote:
> > Zsh is busy spinning for minutes when I hit tab at the end of an
> > directory. For example consider:
> > ~ % /usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.0/man/man1/
> > man1 % l
> > total 1748
> > drwxr-xr-x 2 root     72 Nov  8 13:37 .
> > drwxr-xr-x 4 root     28 May 27 15:33 ..
> > -rw-r--r-- 1 root  42888 Nov  8 13:37 cpp.1
> > -rw-r--r-- 1 root 824844 Nov  8 13:37 g++.1
> > -rw-r--r-- 1 root 824844 Nov  8 13:37 gcc.1
> > -rw-r--r-- 1 root  24554 Nov  8 13:37 gcov.1
> > 
> > When position the cursor after the man1/ of 
> > ~ % /usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.0/man/man1/
> > and hit tab, zsh starts spinning:
> > 
> >  96.79%  libzsh-4.3.12.so   [.] 0x7185f
> >   0.12%  [kernel]           [k] handle_irq_event_percpu
> >   0.07%  libFLAC.so.8.2.0   [.] FLAC__bitreader_read_rice_signed_block  
> 
> When I zoom into zsh with "perf top" I see:
>  69.44%  zsh              [.] patmatch
>  14.15%  zsh              [.] charrefinc 
>   9.44%  zsh              [.] charnext
>   6.66%  zsh              [.] charref 

Ah, it's the following lines in my .zshrc that are responsible:

zstyle ':completion:::::' completer _complete _approximate                                                                                           
zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) )'                                                          
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b' 

When I comment out the max-errors zstyle, zsh no longer hangs.

So the next question is, how can I get the same behavior as before, but
without the long hangs?

-- 
Markus



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