私のipythonのインストールでは、上矢印と下矢印を使用してコマンド履歴を確実に移動できないという奇妙な問題があります...多くの場合、機能しません(キーを押しても何も起こりません)。また、コマンドの最後に通常の文字を書いてもうまくいかないことがあります。
私のシステム: Mac OSX Lion
私はreadlineをインストールしました...
お手伝いありがとう!デビッド
ipythonの前にreadlineをインストールしたことを確認してください。
sudo pip uninstall ipython
sudo pip install readline ipython
(私はこの質問が数ヶ月前であることを知っていますが、将来の参考のために)
readline をインストールする必要がeasy_install readline
あり、それで修正されました。を使用pip install readline
してもうまくいきませんでした.ipythonは警告を出しました:
******************************************************************************
libedit detected - readline will not be well behaved, including but not limited to:
* crashes on tab completion
* incorrect history navigation
* corrupting long-lines
* failure to wrap or indent lines properly
It is highly recommended that you install readline, which is easy_installable:
easy_install readline
Note that `pip install readline` generally DOES NOT WORK, because
it installs to site-packages, which come *after* lib-dynload in sys.path,
where readline is located. It must be `easy_install readline`, or to a custom
location on your PYTHONPATH (even --user comes after lib-dyload).
******************************************************************************
これは IPython の意図的な機能です。「abc」と入力して上向き矢印を押すと、「abc」で始まる行だけがスクロールされます。スクロール中にリフト/右を押すと、同じ動作がトリガーされます。現在の行の内容全体が検索プレフィックスとして解釈され、さらに上/下キーを押すと all で始まる行のみが表示されます。
この動作はPYTHONSTARTUP
ファイルで変更できます。次の行があります。
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')
興味のある方は、オーバーライドしているIPython のソース コードのバインディングを次に示します。
無関係ですが、readline のデフォルトの ctrl-w をオーバーライドしたい:
# Ctrl-W behavior more like Vim
readline.parse_and_bind('"\\C-w": backward-kill-word')