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