[Bug 219406] Re: bash autocomplete broken when a : is in the path

Peter Cordes peter at cordes.ca
Sat Nov 29 01:55:29 UTC 2014


Apparently this is a known problem that can't be fixed.  /usr/share/doc
/bash-completion/README.gz FAQ says:

Q. Completion goes awry when I try to complete on something that contains
   a colon.

A. This is actually a 'feature' of bash. bash recognises a colon as
   starting a new completion token, which is often what you want when
   completing something like a PATH variable:

   $ export PATH=/bin:/sbin:/usr<Tab>

   Without the special treatment of the colon, the above wouldn't work
   without programmable completion, so it has long been a feature of
   the shell.

   Unfortunately, you don't want the colon to be treated as a special
   case when doing something like:

   $ man File::B<Tab>

   Here, the colons make bash think that it's completing the a new
   token that begins with 'B'.

   Unfortunately, there's no way to turn this off. The only thing you
   can do is escape the colons with a backslash.


So, just quote your : as \:, and roll your eyes or whatever you have to do.

I would change this to Won'tfix, but apparently ordinary mortals can't
do that.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash-completion in Ubuntu.
https://bugs.launchpad.net/bugs/219406

Title:
  bash autocomplete broken when a : is in the path

Status in bash-completion package in Ubuntu:
  Triaged
Status in bash-completion package in Debian:
  Won't Fix

Bug description:
  Binary package hint: bash

  Say you have a directory that looks like so:

      user at machine:/var/log/gdm$ ls
      :0.log  :0.log.1  :0.log.2  :0.log.3  :0.log.4  failsafe.log

  and you try to view one of the files by typing

      user at machine:/var/log/gdm$ /var/log/gdm/:<TAB KEY>

  Then immediately your command line will look like so:

      user at machine:/var/log/gdm$ cat /var/log/gdm/:/var/log/gdm/\:0.log

  However, if you type

      user at machine:/var/log/gdm$ /var/log/gdm/\:<TAB KEY>

  then it will work as expected, like so:

      user at machine:/var/log/gdm$ cat /var/log/gdm/\:0.log

  Package information:

  $ apt-cache policy bash bash-completion
  bash:
    Installed: 3.2-0ubuntu16
    Candidate: 3.2-0ubuntu16
    Version table:
   *** 3.2-0ubuntu16 0
          500 http://us.archive.ubuntu.com hardy/main Packages
          100 /var/lib/dpkg/status
  bash-completion:
    Installed: (none)
    Candidate: 20060301-3ubuntu3
    Version table:
       20060301-3ubuntu3 0
          500 http://us.archive.ubuntu.com hardy/main Packages

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash-completion/+bug/219406/+subscriptions



More information about the foundations-bugs mailing list