2011-11-12 13 views
27

ipython> = 0.11 में,% पेस्ट कमांड इंडेंट किए गए कमांड पेस्ट करने के लिए आवश्यक है। हालांकि, अगर मैं रिमोट टर्मिनल में आईपीथॉन खोल चलाता हूं, तो बफर% पेस्ट स्थानीय मशीन की बजाय रिमोट मशीन पर है। क्या इसके आसपास कोई रास्ता है?ipython: ssh कनेक्शन पर% पेस्ट

+1

मुझे अभी याद आया है कि '% cpaste' जादू भी है। इससे आपको पेस्ट करने की जगह मिलती है, और आप चिपकने वाले कोड को रोकने और चलाने के लिए बस लाइन पर '--' जोड़ सकते हैं। –

+0

कृपया उत्तर को%% cpaste' पर स्विच करें, यह बेहतर समाधान है। धन्यवाद –

उत्तर

45

मुझे लगता है कि यह वास्तव में क्या %cpaste (मैं हमेशा सब बातों IPython करता है के बारे में भूल कर रहा हूँ) के लिए है। %cpaste एक राज्य आप पहले से ही स्वरूपित पेस्ट करने के लिए या दांतेदार कोड की इजाजत दी में प्रवेश करती है, और यह, प्रमुख खरोज और संकेतों पट्टी तो आप, या यहाँ तक कि जो निकाल दिया जाएगा, प्रमुख >>> या In [1] सहित एक इंटरैक्टिव अजगर सत्र से/कॉपी कर सकते हैं फ़ाइलों से दांतेदार कोड पेस्ट होगा ।

+0

स्थानीय या दूरस्थ बफर से '% cpaste' खींचता है? – keflavich

+1

स्थानीय (उपयोगकर्ता को, आईपीथन नहीं)। '% cpaste' एक ऐसे मोड में प्रवेश करता है जो सभी ऑटोइंडेंट इत्यादि को रोकता है, ताकि कोड का नियमित पेस्टिंग काम करे। यह सीधे क्लिपबोर्ड से नहीं खींचता है, जैसे '% पेस्ट'। तो यदि आप '% cpaste'' 'करते हैं, तो आप सामग्री को अपने स्थानीय बफर से चिपकाएंगे। – minrk

4

नहीं एक प्रतिभाशाली समाधान है, लेकिन मुझे लगता है कि यह काम करेगा:

उपयोग %autoindent autoindenting, प्रकार if True: और दर्ज प्रेस बंद करने के लिए। फिर अपने इंडेंट कोड पेस्ट करें।

मुझे लगता है कि इसे बेहतर तरीके से संभालने के लिए आईपीथन एक्सटेंशन लिखना संभव होना चाहिए। मैं इसे देखने के लिए गोल करने की कोशिश करूंगा। मैंने an issue बनाया है।

यदि आप आईपीथन का उपयोग करते हैं, तो आप नए कर्नेल/क्लाइंट आर्किटेक्चर को काम करना चाहते हैं - एसएसएच पर कनेक्शन को सुरंग करना संभव होना चाहिए, ताकि आप अपनी स्थानीय मशीन पर क्यूटी कंसोल का उपयोग कर सकें, एक सर्वर पर कर्नेल। लेकिन यह जगह पाने के लिए थोड़ा सा झुकाव ले सकता है।

+1

नियमित पेस्टिंग गड़बड़ हो जाने का कारण यह है कि यह अनिवार्य रूप से टर्मिनल के माध्यम से प्रत्येक चरित्र को टाइप करने का अनुकरण करता है। यह पता लगाना असंभव है कि यह वास्तविक टाइपिंग या पेस्टिंग है, इसलिए आईपीथॉन एक लाइन को ऑटोइंडेंट करेगा, फिर आपके चिपकाए गए इंडेंटेशन उसके बाद आता है। यदि आपका पेस्ट दो पंक्तियां है, तो यह अतिरिक्त इंडेंटेशन होगा, लेकिन ज्यादातर मामलों में यह वास्तव में गलत होगा। – minrk

+0

धन्यवाद थॉमस। यह काफी समाधान नहीं है, लेकिन स्वीकृति है कि यह एक बग है (या कम से कम इस तरह के बारे में सोचा जा सकता है) पर्याप्त है। अभी के लिए मैं आपके द्वारा प्रदत्त वर्कअराउंड के साथ रहूंगा। – keflavich