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

Re: .zshrc sanity check



Thorsten Kampe wrote:
> 
> re-reading the User's guide I have made many changes to my .zshrc and

> zstyle ':completion:*' completer        _expand _complete _match _approximate _ignored
> zstyle ':completion:*:expand:*' glob             true

The _match completer is pretty much superfluous if you already use
_expand to expand any globs. I have _match bound to a separate key.

> zstyle    ':completion:*:approximate:*' insert-unambiguous true

This style is not doing anything. _approximate only looks up that style
after it has added the number of corrections to the context. I use:
  zstyle ':completion::approximate*:*' insert-unambiguous true

> zstyle    ':completion:*:approximate:*' original           false

false is the default value for this style. It would also need an extra
`*' in the style after `approximate'. If you never want _approximate to
add the original string as a match, you need to use:
  zstyle ':completion::approximate:*' tag-order corrections

You might want to think about using more specific contexts for quite a
few of the styles. It is worth thinking through all the style
components whenever you set a style. If you can't remember the
components, add a comment:
  # contexts are :completion:<function>:<completer>:<command>:<arg>:<tag>

I prefer to avoid matching anything (with *) in the function component
with styles that affect completion behaviour.

Another case where you could make the context more specific:

> zstyle ':completion:*:functions' ignored-patterns  '_*'

Anything which restricts matches by literal checks of what has already
been typed against a fixed string tends not to be desirable for the
_correct and _approximate completers. This is because you might
mis-type the literal string. So, for example:
  unfunction -ssh<tab>
won't correct to
  unfunction _ssh

I instead use:
  zstyle ':completion::(^approximate*):*:functions' ignored-patterns '_*'

> zstyle ':completion:*:expand:*' subst-globs-only true

You might want to rethink setting that (and your expand styles in
general since it looks like you've just set everything true). Other
styles now do a better job with what I tried to do with
subst-globs-only.

Other than that, it rest comes down to personal preference. I found
myself thinking "yuk" but not "that's insane" on seeing some of your
option settings. A couple of options you may want to try setting are
c_bases and braceccl.

Oliver



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