Python,通过它的 readline 绑定允许很好的命令行自动完成(如这里所述)。
但是,完成似乎只在字符串的开头起作用。如果要匹配字符串的中间或结尾,则 readline 不起作用。
我想在命令行 python 程序中通过将我键入的内容与可用字符串列表中的任何字符串匹配来自动完成字符串。
- 我想要的自动完成类型的一个很好的例子是当您在 To 字段中键入时在 GMail 中发生的类型。如果您输入其中一个联系人的姓氏,它就会出现,就像您输入她的名字一样。
- 可能需要使用向上和向下箭头或其他方法从匹配的字符串中进行选择(在 readline 的情况下不需要),这在我的情况下很好。
- 我的特定用例是一个发送电子邮件的命令行程序。
- 具体的代码示例将非常有帮助。
使用像 curses 这样的终端模拟器就可以了。它只需要在 linux 上运行,而不是 Mac 或 Windows。
这是一个示例:假设我在列表中有以下三个字符串
['Paul Eden <paul@domain.com>',
'Eden Jones <ejones@domain.com>',
'Somebody Else <somebody@domain.com>']
我想要一些代码,在我键入“Eden”后自动完成列表中的前两项,然后允许我选择其中一项(全部通过使用键盘的命令行)。