对于任何人来的结论是,启动时间为新壳在MacOS是对他们来说太缓慢,这是该解决方案。
我只是发现实际上可以通过安装两个软件包brew
。我已经安装bash-completion
软件包多年了,从来没有打扰过它,尽管那时我已经从Bash 3变为4,到现在的5。 ,常常在这个StackOverflow讨论中绊脚石。
还有另一个包bash-completion@2
!
有什么不同?bash-completion
适用于Bash 3.2版。bash-completion@2
适用于Bash 4.1+和5。
在删除旧bash-completion
软件包并进行安装时bash-completion@2
,我的shell启动时间从605ms减少到244ms。这是一个巨大的速度改进。
我怀疑我们中的许多人都在犯同样的错误,因为brew info
统计数据表明前者的安装量很多,而后者却很少:
应当注意,当前选择的答案提到注释了一些行,这仅对启动时间进行了少许改进(如果使用旧bash-completion
软件包,很多人可能会这样做),但对新bash-completion@2
软件包没有任何影响:此新软件包无论如何都很快。这意味着不需要黑客。
TL; DR:
brew uninstall bash-completion && brew install bash-completion@2
切记将您的.bashrc
或.bash_profile
文件中的完成文件的源路径更新为。
资料来源:
作为一个与之相关的主题,我经常使用该rclone
实用程序,因此已安装该实用程序。它恰好具有我见过的最大的完成文件。删除它可以将我的shell启动时间减少到〜120ms,这非常快。
编辑:
对于任何想要解释此问题的技术细节的人,我已经在Homebrew论坛上进行了详尽的介绍。总而言之,之所以bash-completion@2
如此之快,是因为编写它的原因是它不再急切地加载所有完成文件。取而代之的是按需加载完成文件,或者如作者所描述的那样以不急于加载的方式加载它们。