在Windows上,IPython是我可用的最容易使用的命令行环境。在我真正的旧IPython环境(Python 2.7.5,IPython 0.13.2和pyreadline 2.0)中,我曾经能够在命令行输入部分文件路径,按Tab键,得到如下内容:
In [1]: cd /Users/Jez/D
/Users/Jez/Desktop/ /Users/Jez/Downloads/ /Users/Jez/dots2-default-accel=6da3a.pdf
/Users/Jez/Documents/ /Users/Jez/Dropbox/
它提供的所有选项都是真正的文件和目录。这很好。
使用更新的设置(Python 3.6.4,IPython 6.1.0,(py)readline ???)会发生以下情况:
In [1]: cd /Users/Jez/D
delattr() dir() /Users/Jez/Desktop/ /Users/Jez/Dropbox/
DeprecationWarning display() /Users/Jez/Documents/
dict divmod() /Users/Jez/Downloads/
尽管到目前为止输入的内容只有意义地可解释为文件系统路径,但完成选项包括很多不是文件或目录的内容(就好像我可能想要将一个名为/Users/Jez
的不存在的对象除以某种东西。这不太聪明。我发现它经常破坏我的思路(在这个例子中只有6个误报,但有时候有很多真正的选择是完全隐藏的。)
是否有某个配置选项可以让我重新捕获旧行为的特异性?到目前为止,我的搜索失败了 - 我发现了一些对readline和.inputrc
的引用,但我怀疑它与Windows无关。
答案 0 :(得分:0)
知道了:
%config IPCompleter.use_jedi = False
或等同于/Users/Jez/.ipython/profile_default/ipython_config.py
:
c = get_config()
...
c.IPCompleter.use_jedi = False
订单66完成。真是一种解脱。