3

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

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

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

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

另外,如果我改变我ipython_config.py的包括

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

然后我可以Escape UpArrow为所需的行为做事。(这是我的配置文件的其余部分。)

Ctrl+按我的预期V UpArrow生产。^[[A我安装了 pythonreadline库(这似乎解决了运行 IPython 的 mac 的常见问题)。

我有这些行.bashrc

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

他们的工作方式完全符合我的要求bash

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

4

1 回答 1

1

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

于 2013-05-03T22:29:38.547 回答