Ipython 伊皮顿';s历史记录向后搜索未按预期工作

Ipython 伊皮顿';s历史记录向后搜索未按预期工作,ipython,readline,Ipython,Readline,IPython的历史向后搜索功能是我最喜欢的功能之一历史记录向后搜索允许您键入命令的一部分,然后在读线历史记录中向后搜索以该部分命令开头的命令。默认情况下(我相信)它们被绑定到UpArrow或Ctrl+P和downarow或Ctrl+N(分别用于向后和向前) 他们不是为我工作。相反,它们只是线性地浏览我的历史记录,而不是考虑我已经输入的字符来(全面地)过滤我的历史记录 我在ArchLinux上从XTerm内部运行IPython 0.13.2(使用Python 2和3) 如果我点击Escape,C

IPython的
历史向后搜索
功能是我最喜欢的功能之一<代码>历史记录向后搜索允许您键入命令的一部分,然后在读线历史记录中向后搜索以该部分命令开头的命令。默认情况下(我相信)它们被绑定到
UpArrow
Ctrl
+
P
downarow
Ctrl
+
N
(分别用于向后和向前)

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

我在ArchLinux上从XTerm内部运行IPython 0.13.2(使用Python 2和3)

如果我点击
Escape
Ctrl
+
p
,那么
向上箭头和
向下箭头
完全按照我的要求工作

此外,如果我更改我的
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
。我安装了python
readline
库(它似乎可以解决运行IPython的Mac电脑的常见问题)

我的
.bashrc

bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
它们在
bash
中完全按照我的要求工作


我不知道下一步还要做什么,所以我来了。请帮忙,我希望我已经包含了足够的信息并做了足够的研究。

罪魁祸首是我的
.inputrc
中设置的
set keymap vi
。我删除了它,IPython的历史回到了我预期的状态。多亏了!

你可能想检查你的
。inputrc
还有文件-这可能会影响它。好的,我的
.inputrc
只是有
设置编辑模式vi
设置键映射vi