我怎样才能重新获得旧的IPython文件系统路径自动完成的特殊性?

时间:2018-05-14 22:36:22

标签: ipython

在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无关。

1 个答案:

答案 0 :(得分:0)

知道了:

%config IPCompleter.use_jedi = False

或等同于/Users/Jez/.ipython/profile_default/ipython_config.py

c = get_config()
...
c.IPCompleter.use_jedi =  False

订单66完成。真是一种解脱。