【问题标题】:IPython's history-search-backward not working as desiredIPython 的历史搜索向后无法按预期工作
【发布时间】:2013-05-03 01:29:51
【问题描述】:

IPython 的history-search-backward 功能是我最喜欢的功能之一。 history-search-backward 允许您键入命令的一部分,然后在您的 readline 历史记录中向后搜索以该命令部分开头的命令。默认情况下(我相信)这些绑定到 UpArrowCtrl+PDownArrowCtrl+N (分别用于向后和向前)。

他们不为我工作。相反,它们只是线性地浏览我的历史记录,而不是考虑我已经输入的字符(据说)过滤我的历史记录。

我在 XTerm 中的 Arch Linux 上运行 IPython 0.13.2(带有 Python 2 和 3)。

如果我点击EscapeCtrl+P,然后UpArrowDownArrow 完全按照我的意愿工作。

另外,如果我将ipython_config.py 更改为包含

c.TerminalInteractiveShell.readline_parse_and_bind = ['"\\e[B": history-search-forward', '"\\e[A": history-search-backward']

然后我可以为所需的行为执行Escape UpArrow。 (Here's the rest of my config file.)

Ctrl+V UpArrow 如我所料产生^[[A。我安装了 python readline 库(这似乎解决了运行 IPython 的 mac 的常见问题)。

我的.bashrc中有这些行

bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'

它们在bash 中完全按照我的要求工作。

我不知道接下来要尝试什么,所以我来到了这里。请帮忙,我希望我已经包含了足够的信息并进行了足够的研究。

【问题讨论】:

  • 您可能还想检查您的 .inputrc 文件 - 这可能会影响它。
  • 好吧,我的.inputrcset editing-mode viset keymap vi

标签: ipython readline


【解决方案1】:

罪魁祸首是set keymap vi 设置在我的.inputrc 中。我删除了它,IPython 的历史又回到了我的预期。感谢@Thomas K

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多