为 Python3 别名设置 bash 自动完成的问题

为 Python3 别名设置 bash 自动完成的问题

我有一个 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,但两者都会有来源,所以结果是相同的。

相关内容