我有一个 python3 的别名‘py’——它的设置正如你在.bashrc 文件中所期望的那样。
alias py='python3'
complete -F _python py
问题是,只有当我尝试使用基本 Python 命令 python Prior 完成时,完成才会起作用。以下是终端日志中的一个示例:
~/askubuntodemo: ls
main.py
~/askubuntodemo: py -bash: completion: function `_python' not found
~/askubuntodemo: python main.py
hello world
~/askubuntodemo: py main.py
hello world
有没有一种方法可以在我登录后立即初始化自动完成功能,而不必先使用主 python 完成来手动初始化。
(编辑:发布时 .bashrc 中的错误)
答案1
对于自动完成,我已经通过添加以下内容解决了这个问题(使用另一个别名,但在这里针对 python 进行了修改)/etc/bash_completion.d/bash_completion
:
if [[ -r /usr/share/bash-completion/completions/python3 ]]; then
. /usr/share/bash-completion/completions/python3 && complete -F _python python py
fi
我相信这也可以添加到.bashrc
,但两者都会有来源,所以结果是相同的。