[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Directory name completion using bash_completion in unstable

[I'm not subscribed, cc's appreciated.]

Executive summary:  Debian is behaving slightly differently than stock
bash and bash_completion, and I'd like to know why.  (Because I like the
Debian behavior better.)

The question deals with directory completion when typing the path to an
executable.  As an example, say I want to run "./longdir/longsubdir/foo"
and I use <Tab> because the names are long and complicated, or I'm just lazy.
I will use '_' to represent the cursor position.

Using stock upstream bash with stock upstream bash_completion, I can type
"./longd<Tab>" and get

    $ ./longdir _

So I type a backspace, a slash, then "longs<Tab>" and get

    $ ./longdir/longsubdir _

Sigh.  Backspace again, another slash, etc, etc.

The only line in INPUTRC/.inputrc is "set mark-directories off" to not
get the trailing slash.  But a trailing space is still appended.

Under Debian, the trailing space is not appended.  Yay.

I note that the "complete" builtin has a "-o nospace" option to specifically
disable the extra space -- but this only works for programmed completion.
There doesn't seem to be a readline (or other) option to turn it off
while completing the initial command word.  And there doesn't seem to
be anything in sid's /etc/bash_completion that tries to set completion
options for the general command word case.

How is the Debian version doing this?

<stevenb> Some of the developers wouldn't even be allowed to drink at all if
          the summit was held in the US.
<ajh> If you're old enough to hack gcc, you're old enough to drink.

Reply to: