ubuntu 11.04下的bash-completion问题

如果你在Ubuntu11.04下安装了adobe的pdf reader,会发现bash的自动补全不好用了,主要症状是使用less之类的命令时,bash会把文件夹当成文件名来匹配,比如我想要:

1
less /usr/share/vimrc

在/usr后使用tab键补全,就会变成less /usr<空格>,然后就停在那儿了。
解决方法:
第一种是删掉/etc/bash_completion.d/文件夹中acroread.sh这个链接,然后重新打开终端就好了。
第二种是修改/etc/bash_completion:1587行,把-o default 改成 -o filenames,然后重新打开终端。

This entry was posted in shell, Ubuntu. Bookmark the permalink.

7 Responses to ubuntu 11.04下的bash-completion问题

  1. 小白 says:

    博主你是怎么发现这个原因的,能提供下思路么?

  2. Bookart says:

    你也真有耐心,我是在home目录下发现有个.bashrc的文件,把他删掉就好了,但是sudo apt-get就没办法补齐了。然后我又发现这个文件最后有这几行代码:
    #use bash_completion function
    if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
    fi
    然后我就想在网上找个bash_completion文件替换掉,结果就搜到你的文章了。确实解决了我的问题。Thanks。看你第一条的解决方案,这个问题是adobe引起的么?

    • fidy says:

      应该是adobe的补全脚本问题。恭喜你解决问题了,顺便膜拜下你删.bashrc的这种舍身取义的行为 😀

      • Bookart says:

        呵呵,我是不懂,所以乱捣鼓着玩的。

        我最近发现使用第一种方法修正这个bug的时候,还是有一点问题,是使用sudo命令时, sudo gedit /etc/hosts补全时etc后面跟一空格。而直接使用gedit /etc/hosts 时就没这个问题。可能还要有个地方需要修改。

        而使用第二个方法就没这个问题了。

Leave a Reply

Your email address will not be published. Required fields are marked *