朋友们,
我在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。