以前有人问过这个问题,但我找不到一个好的答案。所以,我想再问一次。
我希望我的 ipdb 能够记住跨会话的命令。现在,它可以提取在 Ipython 会话中执行的命令,但不能从旧的 ipdb 会话中提取。如果我能拥有这个功能,那将是一个巨大的节省时间。
有没有人可以解决这个问题?
如果您愿意使用另一个调试器,trepan确实可以跨会话保存历史记录。
execfile(...)
在您的文件中导入该~/.pdbrc
文件def use_file_history():
import os
from IPython.terminal.debugger import TerminalPdb
from prompt_toolkit.history import FileHistory
cmdloop = TerminalPdb.cmdloop
def cmdloop_prime(self, intro=None):
fname = os.path.join(os.path.expanduser('~'), '.ipdb_history')
self._pt_app.buffer.history = FileHistory(fname)
self._pt_app.buffer.reset()
cmdloop(self, intro)
TerminalPdb.cmdloop = cmdloop_prime
use_file_history()
del use_file_history
PS——你可以在这个带有 ipdb 补丁的 gist中找到这个代码和更多补丁