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

Brace expansion vs. TAB



(Using zsh 5.3.1 on Debian.)

In a directory with c++ sources:

  $ ls *
  foo.cpp  foo.h

Now,

  $ grep ... *.{hpp,cpp}<TAB>

results in

  $ grep ... foo.cpp

But

  $ grep ... *.{hpp,cpp}<ENTER>
  zsh: no matches found: *.hpp

--

Q1:

Well, that is probably because Tab expansion is totally different
from filename generation and the NOMATH option is enabled (by
default?).  But is there a way to get rid of the error message in
this specific case only?  I.e. to disable the NOMATCH option in
command using brace expansion only?

Q2:

What I really want to have is a simple way to get all c and c++
filenames in a singel pattern, like

  $ grep ... *.{h,c,hpp,cpp,hxx,cxx}
  $ grep ... **/*.{h,c,hpp,cpp,hxx,cxx}

In an ideal world I'd like to have something very simple that
worked with c sources, but not with c++.

  $ grep ... **/*.[ch]
  ->
  $ alias -g CH="{h,c,hpp,cpp,hxx,cxx}"
  $ grep ... **/*.CH

(Yeah, I know global aliases dont't work this way.)

Ciao

Dominik ^_^  ^_^

--

Dominik Vogt



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