2012-10-22 11 views
6

IPython के अपने स्थापना में मैं यह अजीब समस्या है जहाँ मैं मज़बूती के साथ ऊपर व नीचे तीर ... बहुत समय यह सिर्फ काम नहीं करता आदेश इतिहास के माध्यम से नहीं ले जा सकते है (कुछ नहीं होता कुंजी प्रेस पर)। कभी-कभी कमांड के अंत में सामान्य वर्ण लिखना भी काम नहीं करता है।अप IPython और नीचे तीर अजीब व्यवहार

मेरे सिस्टम: मैक OSX शेर

मैं ReadLine स्थापित किया है ...

मदद के लिए धन्यवाद! डेविड

+0

कौन सा दृश्यपटल? शास्त्रीय ipython या qtconsole? कौन सा संस्करण? 0.13.1 कुछ घंटों पहले जारी किया गया है। आप github पर कोई समस्या खोलने का प्रयास कर सकते हैं। – Matt

+0

मैट, लेखन के लिए धन्यवाद ... आपके प्रश्न का उत्तर करने के लिए: शास्त्रीय IPython ... मैं 0.13.1 करने की कोशिश की और यह एक ही है। हां, शायद मैं इस मुद्दे को खोलूंगा - संकेत के लिए धन्यवाद। – davidhq

उत्तर

7

सुनिश्चित करें कि आपने रीडलाइन ipython से पहले स्थापित किया है।

sudo pip uninstall ipython

sudo pip install readline ipython

(मैं जानता हूँ कि इस सवाल का कुछ महीने पुरानी है, लेकिन भविष्य में संदर्भ के लिए)

+1

मुझे ipython को अनइंस्टॉल करने की आवश्यकता नहीं थी। बस "easy_install readline" चाल थी। – Varuna

+1

आप/डेबियन के लिए (redhat के लिए) ncurses-डेवलपमेंट या libncurses5-देव स्थापित करने के लिए ubuntu यदि आप प्राप्त की जरूरत है जब पिप – Bedros

5

मैं easy_install readline साथ 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). 
****************************************************************************** 
+0

चल मेरे लिए, स्थापित करने त्रुटि नहीं मिला 'readline' पहले तो' ipython' काम "-lncurses"। –

0

IPython में परेशानी और इतिहास का उपयोग करने के लिए & -down तीर अप- के बाद, और इस पोस्ट को ब्राउज़ कर, एक सरल उपाय (बंद कर देते हैं "स्क्रॉल लॉक ") मेरे लिए काम करने के लिए बाहर निकला।

+0

आप कृपया अधिक अपने जवाब समाधान उपलब्ध कराने के बारे में थोड़ा और अधिक विवरण जोड़ने विस्तृत सकते हैं? – abarisone

0

यह IPython का एक जानबूझकर सुविधा है। यदि आप "एबीसी" टाइप करते हैं और फिर ऊपर तीर दबाते हैं, तो यह केवल "एबीसी" से शुरू होने वाली रेखाओं के माध्यम से स्क्रॉल करने जा रहा है। यदि आप स्क्रॉल करते समय लिफ्ट/दाएं हिट करते हैं, तो यह वही व्यवहार ट्रिगर करता है। वर्तमान पंक्ति की संपूर्ण सामग्री, अपनी खोज को उपसर्ग के रूप में व्याख्या कर रहे हैं किसी भी सभी के साथ शुरू लाइनों कि आगे ऊपर/नीचे keypresses पर दिखाई देगा।

आप अपने 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') 

आप उत्सुक हैं, तो here are the bindings in IPython's source code कि हम अधिभावी रहे हैं: मैं निम्नलिखित लाइनों की है।

असंबंधित, लेकिन मैं यह भी ReadLine के डिफ़ॉल्ट ctrl-डब्ल्यू ओवरराइड करने के लिए करना चाहते:

# Ctrl-W behavior more like Vim 
readline.parse_and_bind('"\\C-w": backward-kill-word') 
संबंधित मुद्दे