簡體   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