我的Python程序可以使用各种不同的选项(或子命令)启动,例如:
$ myProgram doSomething
$ myProgram doSomethingElse
$ myProgram nowDoSomethingDifferent
我希望它使用自动完成功能,以便如果我键入“myProgram d”,则返回“myProgram doSomething”,如果我键入“myProgram n”,则呈现“myProgram nowDoSomethingDifferent”。这类似于模块rlcompleter的一般用法,但是它不会从文件系统(或历史记录)中选择可能的完成选项,而是从一组自定义的字符串中选择(与程序的可用选项相对应)。
关于如何实现这一点的任何想法?
我知道变量PYTHONSTARTUP(应该指向一个我不知道如何写的文件)。
作为一个工作示例,django-admin(来自django软件包)具有我正在寻找的相同功能
最佳答案
创建文件“myprog-completion.bash”,并将其来源到您的.bashrc文件中。这样的东西可以帮助您入门...
_myProgram()
{
cur=${COMP_WORDS[COMP_CWORD]}
case "${cur}" in
d*) use="doSomething" ;;
n*) use="nowDoSomethingElse" ;;
esac
COMPREPLY=( $( compgen -W "$use" -- $cur ) )
}
complete -o default -o nospace -F _myProgram myProgram
关于bash - 使用自定义命令完成行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/427472/