如何在交互式Python解释器中获取制表符完成功能?


14

我经常使用Python 3000的交互式解释器,但是它缺少我习惯从ipython进行制表符补全的便利,而该功能在Python 3.x中不可用。

如何在所有2.6和3.x中启用制表符完成功能?

Answers:


17

首先,.pythonstartup.py在您的主目录中创建一个新文件。将以下脚本放入其中:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

字符串周围的括号可确保它同时适用于Python 2和Python 3。

每次启动交互式解释器时,它都会执行中定义的脚本$PYTHONSTARTUP(如果有)。要将其设置为执行上述脚本,请键入

export PYTHONSTARTUP="~/.pythonstartup.py"

您应该将此行写入您的.bashrc.bash_profile文件,以便在启动新的Shell时自动执行该行。


6
注意:如果启动终端然后更改目录,则此操作将无效。如果您希望此方法无论在目录中都可以使用,则应使用完整路径,例如export PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos

1
您可以通过出口来提高出口的PYTHONSTARTUP=~/.pythonstartup.py
容忍度

如果以交互模式(例如)启动文件,则此方法不起作用python -i main.py。有什么办法吗?
克里斯·安德森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.