Hello Gordon,
On Wed, 29 Aug 2018 08:27:06 -0700 Gordon Messmer gordon.messmer@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,