2013-05-03 145 views
3

IPython的history-search-backward功能是我最喜歡的功能之一。 history-search-backward允許您鍵入命令的一部分,然後向後搜索readline歷史記錄,以查找以命令的該部分開始的命令。默認情況下(我相信)這些綁定到UpArrowCtrl + PDownArrowCtrl + N(分別爲向後和向前)。IPython的歷史記錄搜索後退不能正常工作

他們不適合我。相反,他們只是直線走過我的歷史,而不是考慮到我已經輸入的字符(全部)過濾我的歷史。

我在Arch Linux上從XTerm中運行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'] 

然後我可以做EscapeUpArrow所期望的行爲。 (Here's the rest of my config file。)

Ctrl + VUpArrow產生^[[A如我期望。我安裝了python readline庫(這似乎解決了運行IPython的mac的常見問題)。

我在.bashrc

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

這些線條和他們工作完全因爲我希望他們bash內。

我不知道還有什麼可以嘗試下,所以我來到這裏。請幫助,我希望我已經包含了足夠的信息並做了足夠的研究。

+0

您可能還想檢查'.inputrc'文件 - 這可能會影響它。 – 2013-05-03 11:50:34

+0

好吧,我的'.inputrc'只有 'set editing-mode vi'和 'set keymap vi' – 0xtobit 2013-05-03 20:21:50

回答

1

罪魁禍首是set keymap vi設置在我的.inputrc。我刪除了這個,IPython的歷史回到了我的預期。感謝@Thomas K

相關問題