7

以前有人过这个问题,但我找不到一个好的答案。所以,我想再问一次。

我希望我的 ipdb 能够记住跨会话的命令。现在,它可以提取在 Ipython 会话中执行的命令,但不能从旧的 ipdb 会话中提取。如果我能拥有这个功能,那将是一个巨大的节省时间。

有没有人可以解决这个问题?

4

3 回答 3

5

我遇到了同样的问题,所以我分叉了这个项目并添加了一个持久历史补丁。您可以使用 pip 安装分叉版本的 ipdb:

pip install git+https://github.com/michelesr/ipdb.git

只需确保您的 IPython 版本为 5.0 或更高版本。实施信息可以在这篇文章中找到。

于 2016-11-22T17:50:05.850 回答
1

如果您愿意使用另一个调试器,trepan确实可以跨会话保存历史记录。

于 2015-07-03T02:23:31.347 回答
1
  • 创建一个包含以下内容的文件
  • 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中找到这个代码和更多补丁

于 2020-05-03T08:30:01.940 回答