【问题标题】:History across ipdb sessions跨 ipdb 会话的历史记录
【发布时间】:2014-11-07 22:09:53
【问题描述】:

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

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

有没有人能解决这个问题?

【问题讨论】:

    标签: python ipython ipdb


    【解决方案1】:

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

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

    只需确保您的 IPython 版本为 5.0 或更高版本。可以在article 中找到实现信息。

    【讨论】:

    • 我经常通过ipdb 得到这种分叉的愿望。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      • 创建一个包含以下内容的文件
      • 在您的~/.pdbrc 文件中导入带有execfile(...) 的文件
      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——你可以在this gist with ipdb patches找到这个代码和更多补丁

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 1970-01-01
        • 2016-01-31
        • 1970-01-01
        • 2010-12-21
        相关资源
        最近更新 更多