通过删除环境variables名来防止带有FSpath值的环境variables的bash选项卡完成

朋友们,

我在Linux上使用GNU bash作为我的shell:

$ bash --version GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. $ 

当我设置一个FSpath作为它的值的环境variables时,它的行为非常奇怪。

假设我想将/ opt / database / bin添加到PATH的前面。

我开始input:

 $ export PATH=/o 

然后我按下键盘上的Tab键。

但不是完成到/ opt的path,而是删除PATH =部分! 相反,我得到:

 $ export /opt/ 

那当然,对我来说是无用的,而且非常加重! 然后我需要手动添加环境variables名称,这根本不是我想要做的!

我想要它完成这个:

 $ export PATH=/opt/ 

然后,我可以使用最less的键入和Tab键完成path的其余部分。

有什么方法可以让我不删除环境variables,并采取明智的方式,使我的生产力最大?

尝试禁用Bash完成 。

但是,您的PATH完成适用于使用Bash-Completion的系统。 你可以尝试卸载并重新安装它,看看它是否工作。 我发现它提供的function太有用了,放弃了。

完全禁用Bash完成可能是一个矫枉过正。 这是一个非常有用和高效的function。

您所描述的破坏通常是由第三方.deb软件包安装的位于/etc/bash_completion.d/的特定bash完成configuration脚本引起的。

我在Ubuntu上遇到了同样的问题,在我的情况下,罪魁祸首竟然是由npm Debian软件包(包含Node.js的软件包pipe理器)安装的/etc/bash_completion.d/npm脚本。

我刚刚将npm脚本移出了/etc/bash_completion.d/ – 问题解决了,保存了有用的Bash完成function。