2015-02-03 6 views
5

आईपीथॉन नोटबुक में कीबोर्ड शॉर्ट-कट होना बहुत अच्छा होगा, जो बाहरी संपादक (उदा। जीवीआईएम) में मौजूदा सेल की सामग्री को संपादित करने की अनुमति देगा। हो सकता है कि वर्तमान सेल की सामग्री को अस्थायी फ़ाइल में कॉपी करें, उस पर gvim लॉन्च करें, और प्रत्येक बार फ़ाइल सहेजी जाने पर मौजूदा सेल अपडेट करें (और gvim से बाहर निकलने पर अस्थायी फ़ाइल को हटाएं)। साथ ही, यदि ब्राउज़र ब्राउज़र से संपादित किया गया है तो अस्थायी फ़ाइल को अपडेट करें, ताकि gvim जानता है कि फ़ाइल बदल गई है।बाहरी संपादक में IPython सेल संपादित करें

मुझे विम-आईपीथॉन और आईपीथॉन-विमसेप्शन जैसी परियोजनाओं से अवगत है, लेकिन वे मेरी ज़रूरतों के अनुरूप नहीं हैं। मुझे लगता है कि ब्राउज़र सरल चीजों के लिए पर्याप्त है, लेकिन जब अधिक शक्तिशाली संपादन की आवश्यकता होती है तो पहिया को फिर से शुरू करने की आवश्यकता नहीं होती है।

क्या आप जानते हैं कि ऐसी सुविधा आईपीथन नोटबुक में पहले से मौजूद है या नहीं?

धन्यवाद।

उत्तर

9

यही वह है जिसके साथ मैं आया था। (आप जो कुछ भी पाठ संपादक आप की तरह साथ जाँचने की जगह ले सकता)

  • वर्तमान कक्ष की सामग्री के साथ जाँचने लांच करने के लिए 'जी': मैं 2 शॉर्टकट जोड़।
  • 'यू' वर्तमान सेल की सामग्री को अद्यतन करने के लिए जीवीआईएम द्वारा सहेजा गया था।

तो, जब आप अपने पसंदीदा संपादक के साथ सेल को संपादित करना चाहते हैं, तो 'g' दबाएं, सेल में इच्छित परिवर्तन करें, फ़ाइल को अपने संपादक (और छोड़ें) में सहेजें, फिर 'u' दबाएं ।

बस इन सुविधाओं को सक्षम करने के लिए इस सेल निष्पादित करें:

%%javascript 

IPython.keyboard_manager.command_shortcuts.add_shortcut('g', { 
    handler : function (event) { 
     var input = IPython.notebook.get_selected_cell().get_text(); 
     var cmd = "f = open('.toto.py', 'w');f.close()"; 
     if (input != "") { 
      cmd = '%%writefile .toto.py\n' + input; 
     } 
     IPython.notebook.kernel.execute(cmd); 
     cmd = "import os;os.system('gvim .toto.py')"; 
     IPython.notebook.kernel.execute(cmd); 
     return false; 
    }} 
); 

IPython.keyboard_manager.command_shortcuts.add_shortcut('u', { 
    handler : function (event) { 
     function handle_output(msg) { 
      var ret = msg.content.text; 
      IPython.notebook.get_selected_cell().set_text(ret); 
     } 
     var callback = {'output': handle_output}; 
     var cmd = "f = open('.toto.py', 'r');print(f.read())"; 
     IPython.notebook.kernel.execute(cmd, {iopub: callback}, {silent: false}); 
     return false; 
    }} 
); 
+0

यह मेरे लिए उदात्त पाठ के लिए काम नहीं किया। मैंने cmd = "आयात os; os.system ('gvim .toto.py')" बदल दिया; से cmd = "आयात os; os.system ('subs .toto.py')"; और सब्लिमे टेक्स्ट खुलता है, लेकिन यह नहीं पढ़ता है .toto.py। – pheon

+0

eh ने मेरे विंडोज़ emacs शुरू नहीं किया है, लेकिन मैंने अभी emacs को अस्थायी "toto" फ़ाइल को फिर से लोड किया है। (अद्यतन भाग काम करता है) हैप्पी! –

संबंधित मुद्दे