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

Re: problem with zstyle file-patterns

I still must be doing something wrong:

% zstyle ':completion:*:*:yes::' file-patterns '*XXX.*:files'
% yes <tab>
DIR1/    DIR2/  DIR3/     XXX-YYY.4      XXX.3

I've been using zsh for a rather long time, and it's possible I've got old, now-irrelevant settings. I only found out about the new completion system in the past week, and am not sure what to change for that.


On 11/5/13, 12:31 AM, Bart Schaefer wrote:
On Nov 4,  8:36pm, John wrote:
} I'm having an issue with file-patterns on zstyle:
} % zstyle ':completion:*:*:yes:files' file-patterns '*XXX.*'

First problem is that this zstyle pattern is wrong.  The file-patterns
style is looked up using the context ":completion::complete:yes::"
which does not match ":completion:*:*:yes:files".

Second problem is that even if the ":tag" part of the style were to
be used, the tag "files" is not valid.

The zle keybinding ctrl+x h (_complete_help) would have shown you this
*if* you used it *before* you executed the above zstyle command:

% yes <C-x h>
tags in context :completion::complete:yes::
     all-files  (_files _default)

Once you run the above zstyle, you've [unintentionally] created a
"files" tag, but that doesn't matter because the doc for file-patterns

      The file-patterns style provides alternatives to the default tags,
      which are not used.  Its value consists of elements of the form
      `PATTERN:TAG'; each string may contain any number of such
      specifications separated by spaces.

Note that it says the default tags aren't used.  That's because you can
use file-patterns to define what the tags are, so there can't yet be any
tags at the time this zstyle is looked up.  That could be clearer (it
should probably say that *no* tags are used).

Try instead

     zstyle ':completion:*:*:yes::' file-patterns '*XXX.*:files'

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