IPython的历史搜索 - 后退不能按预期工作

时间:2013-05-03 01:29:52

标签: ipython readline

IPython的history-search-backward功能是我最喜欢的功能之一。 history-search-backward允许您键入命令的一部分,然后向后搜索读取历史记录,查找以该命令的该部分开头的命令。默认情况下(我相信)这些绑定到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内完全符合我的要求。

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

1 个答案:

答案 0 :(得分:1)

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