[CentOS] bash completion in C7

wwp subscript at free.fr
Wed Aug 29 16:22:42 UTC 2018


Hello Gordon,


On Wed, 29 Aug 2018 08:27:06 -0700 Gordon Messmer <gordon.messmer at gmail.com> wrote:

> On 08/28/2018 11:33 PM, wwp wrote:
> >   - it doesn't expand *foo whereas there are *foo-named files in current dir, for instance:
> >     # rm *foo
> >     will show nothing whereas there's a file barfoo in curdir.  
> 
> Tab completion finishes a single word, given a string that appears at the beginning of a list of candidates.

Wrong, tab completion proposes the list of candidates if there are
several, and it only finishes a single word automatically if there's
only one match for the pattern. At least I never experienced tab
completion how you're describing it.


> Wildcard expansion (Ctrl+x, e) will expand a word containing a wildcard to multiple words on the command line, usually so that you can remove some matches.
> 
> Neither will do specifically what you're trying to do, as far as I know.  I think it's simply too ambiguous.

This works fine in CentOS 6, and anywhere with bash 2 and 3, I used such
completion pattern (ls *foo) for years on various systems. I hardly see
how this is ambiguous unless completion doesn't prioritize *foo
matching on files.


> >   - completion takes 10 sec to propose me something, I don't have an
> >     example right here but I'd prefer no completion instead of a
> >     completion that hangs for more than 3 sec.  
> 
> Some completions can take a while.  For example, tab completing a
> path on a remote system in an scp command, or completing a local path
> if it's matched against command output rather than the filesystem.
> IIRC, if you run "git diff path/...", the shell will use the output
> of "git status" to determine which paths have changed.

Irrelevant example here, I'm not talking about remote shells. On a
remote shell I would expect extra delays, anyway, but this is not what
I'm dealing with here.


> I don't know any way to set an upper limit on completions, and while
> "complete -r <cmd>" is expected to disable programmable completion
> for a single command, I can't actually clear completion for the
> ssh/scp commands on my laptop.  "complete -r" turns off programmable
> completion entirely, in which case you simply have simple local path
> completion, if you'd honestly rather not have potentially slow
> options.

I tried disabling programmable completion entirely (`complete -r`),
since I don't need it and find it unreliable and it now works as always
for file matching patterns. That was a tip, thanks!


Regards,

-- 
wwp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.centos.org/pipermail/centos/attachments/20180829/30292e72/attachment.sig>


More information about the CentOS mailing list