不明确的选项卡完成在Windows上的iPython中不起作用

mwo*_*e02 6 python tab-completion ipython

我在安装了pyreadline的Windows 7 x64上运行IPython.如果我开始一个新会话并键入:

import numpy
nu<TAB>
Run Code Online (Sandbox Code Playgroud)

然后nu自动完成numpy.但是,如果我开始一个新的会话并试试这个:

import numpy
n<TAB>
Run Code Online (Sandbox Code Playgroud)

然后什么都没发生 我希望它可以循环完成所有可能的完成.我目前正在使用现成的配置,我是否需要更改设置以启用不明确的选项卡完成,或者我只是运气不好?

编辑:为了解决ma3204的评论,这是另一个例子(从新的ipython会话开始):

[In 1]: value1 = 5

[In 2]: value2 = 6

[In 3]: va<TAB>       ... nothing happens
[In 3]: va<Ctrl + l>
vars   value2 value1

[In 3]: val<TAB>      ... completes to 'value'
[In 3]: value
[In 3]: value<Ctrl + l>
value2 value1

[In 3]: value
Run Code Online (Sandbox Code Playgroud)

当我输入va<TAB>上述我期望每个标签按循环通过value1,value2,vars,value1,value2,等.

小智 9

您必须将pyreadline的配置文件复制到HOME文件夹(C:\ Users\<用户名>).

打开命令行并执行:

copy "C:\Program Files (x86)\Python26\Lib\site-packages\pyreadline\configuration\pyreadlineconfig.ini" %HOMEPATH%
Run Code Online (Sandbox Code Playgroud)


Sla*_*her 6

刚刚安装了python 2.6和numpy,ipython等等.我也很生气.在其他安装较旧的计算机上,它可以工作.我非常使用完成列表来查看可用的命令,所以当它不起作用时我会感到沮丧.

编辑:发现你可以用CTRL-l获得它.在ipythonrc中查看,它应该像我习惯的那样工作但不是.CTRL-l工作.会看看它是否会重新开始.似乎要记住我以前遇到过类似的麻烦,但过了一段时间后它才有效.

  • +1这比什么都没有好.谢谢你的提示.对于找到此页面的其他人,请注意快捷键是"Ctrl + <lowercase L>"而不是"Ctrl + <uppercase I>".我花了几分钟才意识到这一点. (2认同)