繁体   English   中英

ipython历史记录完成部分工作

[英]ipython history completion working partially

由于某种原因,在我使用的ipython shell中,我可以找到某些命令,但并不希望完成这些命令。

例如:

hist -g bla

给了我以下历史记录:

659/1: import os as bla

适用于

rerun 659/1

但是当我键入

import os as

然后按向上箭头,即使hist命令清楚地找到了它,它也拒绝完成这一行。

这可能是什么原因? 除了手动为每个命令使用hist -g并将其重新粘贴到终端之外,我是否有其他方法可以恢复命令?

即使长度也足够大(10000行)也可以完成较早的命令,向上箭头也可以完成最近的命令。

更新:尝试从头开始创建CLEAN history.sqlite文件,并在所有命令的每一行中创建history.store_inputs,但在完成其他命令时仍无法完成某些命令...

TL; DR版本:

ipython对存储在历史记录中的行有一个单独的配置,而不是它用于加载代码完成的行,我创建了一个ipython配置文件,必须手动提高已加载的完成行的数量:

c.InteractiveShell.history_load_length = 50000

这是完整的故事:

ipython实际上有2个单独的影响代码完成的配置。

一个用于存储多少历史记录(出于某种原因,该历史记录存储在我定义的数量上)。 另一个也是更重要的一个-是要在启动时加载的行数,这是命令完成时实际使用的行数。

要查看这两个值,我必须运行:

%config TerminalInteractiveShell.history_load_length
%config TerminalInteractiveShell.history_length

要更改它,我必须运行两个命令(之前没有配置文件):

ipython profile create

这将在路径上创建默认的ipython_config.py文件

~/.ipython/profile_default/ipython_config.py

如果您不知道个人资料在哪里,可以运行

ipython locate profile default

要获取它的完整路径并找到配置文件。

您需要做的最后一件事是取消注释并编辑以下行:

c.InteractiveShell.history_load_length = 50000

我个人提出了50000希望我永远不会实现这一目标,但当然取决于你。

默认值是1000。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM