2012-10-22 20 views
6

Ipython yüklememde, komut geçmişini yukarı ve aşağı oklarla güvenilir şekilde hareket ettiremediğim bu tuhaf bir sorunum var ... pek işe yaramıyorsa (hiçbir şey olmuyorsa) tuşa basıldığında). Ayrıca bazen komutun sonunda normal karakterler yazmak sadece işe yaramıyor.ipython yukarı ve aşağı ok garip davranışı

Sistemim: Mac OSX Lion

Ben taleb yüklemiş ...

yardım için teşekkür ederim! david

+0

önyüzü? Klasik ipython veya qtconsole? Hangi versiyon ? 0.13.1 birkaç saat önce yayınlandı. Github'da bir sorun açmayı deneyebilirsiniz. – Matt

+0

Matt, yazdığınız için teşekkürler ... Sorunuzu cevaplamak için: klasik ipython ... Ben 0.13.1 denedim ve aynı. Evet, belki sorunu açacağım - ipucu için teşekkür ederim. – davidhq

cevap

7

ipython'dan önce readline 'u yüklediğinizden emin olun.

+1

ipython'u kaldırmak zorunda kalmam. Sadece "easy_install readline" hile yaptı. – Varuna

+1

Eğer ncurses-devel (redhat için) veya libncurses5-dev kurmak için debian/ubuntu kurmanız gerekiyorsa "-lncurses" hata iletisini bulamadıysanız pip – Bedros

5

sudo pip install readline ipython

(Bu soru birkaç aylık olduğunu biliyorum, ama ileride yararlanmak üzere)

sudo pip uninstall ipython Ben easy_install readline ile readline yüklemek zorunda kaldı ve o düzelttim. pip install readline kullanma benim için işe yaramadı ve ipython bir uyarı verdi:

****************************************************************************** 
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). 
****************************************************************************** 
+0

hata mesajı için "readline" 'ı yükledikten sonra 'ipython' çalıştı. –

0

ipython sıkıntı ve geçmişine erişmek için & -Aşağı okları up- ardından ve bu yayını gezen, basit bir çözüm ("Scroll kapatmak ") kilitlemek benim için işe yaradı.

+0

Size verdiğiniz çözüm hakkında biraz daha fazla açıklama ekleyerek, daha fazla cevabınızı detaylandırır mısınız? – abarisone

0

Bu, IPython'un kasıtlı bir özelliğidir. "Abc" yazıp ardından yukarı oka basarsanız, yalnızca "abc" ile başlayan satırlarda gezinir. Kaydırırken sağa/sola vurursanız, aynı davranışı tetikler. Geçerli satırın tüm içeriği, arama önekiniz olarak yorumlanır, daha fazla yukarı/aşağı tuşa basacak olan tüm satırlarla başlayan tüm satırlar.

Bu davranışı PYTHONSTARTUP dosyanızdan değiştirebilirsiniz. Biz geçersiz kılma ediyoruz Merak ediyorsanız

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') 

, here are the bindings in IPython's source code: Ben aşağıdaki satırları var.

İlgisiz, ama aynı zamanda Readline'ın öntanımlı ctrl-w geçersiz kılmak için istiyorum:

# Ctrl-W behavior more like Vim 
readline.parse_and_bind('"\\C-w": backward-kill-word') 
İlgili konular