![为什么 Bash 的“cc”和“c++”补全功能不起作用?](https://linux22.com/image/969086/%E4%B8%BA%E4%BB%80%E4%B9%88%20Bash%20%E7%9A%84%E2%80%9Ccc%E2%80%9D%E5%92%8C%E2%80%9Cc%2B%2B%E2%80%9D%E8%A1%A5%E5%85%A8%E5%8A%9F%E8%83%BD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
当尝试使用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++