Jest to celowa funkcja IPython. Jeśli wpiszesz "abc", a następnie uderzysz strzałkę w górę, będzie ona przewijać tylko przez linie zaczynające się od "abc". Jeśli naciśniesz przycisk podnoszenia/w prawo podczas przewijania, uruchamia to samo zachowanie. Cała zawartość bieżącej linii jest interpretowana jako twój prefiks wyszukiwania, wszystkie linie zaczynające się od wszystkich, które pojawią się przy kolejnych naciśnięciach klawiszy w górę/w dół.
Możesz zmienić to zachowanie w swoim pliku PYTHONSTARTUP
. Mam następujące linie:
import readline
# Prevent ctrl-p/ctrl-n/Up/Down from doing prefix searching
readline.parse_and_bind('"\\C-p": previous-history')
readline.parse_and_bind('"\\C-n": next-history')
readline.parse_and_bind('"\\e[A": previous-history')
readline.parse_and_bind('"\\e[B": next-history')
Jeśli jesteś ciekawy, here are the bindings in IPython's source code że jesteśmy nadrzędnymi.
niezwiązane, ale lubię też przesłonić domyślne readline za CTRL-W:
# Ctrl-W behavior more like Vim
readline.parse_and_bind('"\\C-w": backward-kill-word')
Które frontend? Klasyczny ipython lub qtconsole? Która wersja? 0.13.1 zostało wydane kilka godzin temu. Możesz spróbować otworzyć problem na github. – Matt
Matt, dziękuję za pisanie ... Aby odpowiedzieć na twoje pytanie: klasyczny ipython ... Próbowałem 0.13.1 i to jest to samo. Tak, może otworzę numer - dziękuję za podpowiedź. – davidhq