为什么 Bash 的“cc”和“c++”补全功能不起作用?

为什么 Bash 的“cc”和“c++”补全功能不起作用?

当尝试使用cc/c++命令编译 C/C++ 文件时,我发现我无法再使用Tab键进行 bash 完成。

在 12.10 之前我可以做同样的事情。此外,当使用gcc和进行编译时g++,bash-completion 可以正常工作。

答案1

你所看到的是一个bash-completion 中的错误

幸运的是,有一个解决方法:您可以打开/usr/share/bash-completion/completions/cc,找到以下内容:

complete -F _gcc gcc g++ g77 gcj gpc &&
{
    cc  --version 2>/dev/null | grep -q GCC && complete -F _gcc cc  || :
    c++ --version 2>/dev/null | grep -q GCC && complete -F _gcc c++ || :
}

并将其替换为以下内容:

complete -F _gcc gcc g++ g77 gcj gpc cc c++

答案2

我发现了一个非常简单且容易的方法来做到这一点:

打开 .bashrc 文件

$ gedit ~/.bashrc

并添加以下几行:

complete -f cc
complete -f c++

相关内容