On 9/1/19 2:00 PM, 積丹尼 Dan Jacobson wrote:
>>>>>> "CR" == Chet Ramey <[email protected]> writes:
> CR> On 9/1/19 11:10 AM, 積丹尼 Dan Jacobson wrote:
>>> $ ls *.pdf
>>> a.pdf b.pdf
>>> $ diff *.p<TAB>
>>>
>>> At this point <TAB> should complete "*.pdf".
>
> CR> It does (well, the default completion does, maybe programmable completion
> CR> for diff does too). But the two possible completions differ immediately --
> CR> in the first character -- so what are you going to do? Rather than remove
> CR> the word, as normal completion would do, the default bash completion
> leaves
> CR> it alone.
>
> I'm saying I want a real "* . p d f" as the result, I.e., genuine * 0x2A
> asterisk left sitting upon the screen.
I'm saying that's what the default bash completion code does. The default
bash completion code leaves the word unchanged.
> (Yes I wish to disable /usr/share/bash-completion effects while testing,
> though it is on by default in Debian.)
Maybe you should.
>
>>> Or maybe as a bonus it could complete "a.pdf b.pdf" via a different key.
>
> CR> You want it to insert the possible completions? Use C-x* in emacs mode:
>
> CR> glob-expand-word (C-x *)
> CR> The word before point is treated as a pattern for pathname
> CR> expansion, and the list of matching filenames is inserted,
> CR> replacing the word. If a numeric argument is supplied, an
> CR> asterisk is appended before pathname expansion.
>
> Well that can deal with "*" but not "*.p".
That's neither completion nor globbing. If you want something like that to
be completed, you're going to have to write a hybrid operation. Or just
append a `*' to the word.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/