如何找出不同主机上 bash 完成规则的差异?

如何找出不同主机上 bash 完成规则的差异?

在我的装有 openSUSE 13.1 的台式电脑上,我可以输入Tab类似

ls *.dat[Tab]

然后我得到了自动完成功能,或者用 [TAB TAB] 得到可能匹配的列表。然而,在我的装有 opensuse 13.2 的笔记本电脑上,这不起作用。只有常见的补全,比如

ls file[Tab]

正在运行。我怎样才能让第一个案例也运行起来?

答案1

您应该检查软件包的版本bash-completion,例如

dpkg -l bash-completion

并升级它,也许你拥有的是旧版本。

您可以通过以下方式检查所有当前绑定的完成例程的列表:

complete -p

要手动比较规则,请将其保存到文件中并检查差异,例如

linux1$ complete -p > rules1.lst
linux2$ complete -p > rules2.lst
# Place two files in one folder. 
linux1$ diff -u rules1.lst rules2.lst

要手动检查差异,请查看:

  • /etc/bash_completion/usr/share/bash-completion/bash_completion文件、
  • 文件夹中的文件/etc/bash_completion.d
  • 在用户文件夹中:~/.bash_completion

也可以看看:

相关内容