Python shell 中的自动完成仅在有意义时

Autocompletion in Python shell only when it makes sense

我可以使用以下代码在 linux 终端上为 python 启用自动完成选项卡:

import readline
readline.parse_and_bind("tab: complete")

但是您不能再使用普通制表符作为缩进(例如在 if 语句的内部循环),并且当您在 python shell 中复制粘贴包含制表符的代码时,代码不会工作。

是否有任何方法可以仅在有意义时自动完成,例如 pycharm?或者,解析和绑定 Shift+Tab 的语法是什么(S-tab 不起作用)?

我找到了 ptpython ptpython,它可以很容易地嵌入到一个 shell 中。 编辑:那个项目对我来说有太多的功能。我可以使用 ipython 而不是 python shell