GNU Emacs में एक पायथन वन-लाइन स्टेटमेंट का मूल्यांकन करें


1

मैं उपयोग कर रहा हूँ run-python जीएनयू एमएसीएस 24.3 पर इसके "इनफायर पायथन शेल" के लिए और इसके समान व्यवहार प्राप्त करने की कोशिश कर रहा हूं lisp-send-last-sexp, जो चल रहे दुभाषिया में एक अभिव्यक्ति को भेजता है और मूल्यांकन करता है। मैं केवल एक समय में एक पंक्ति के लिए ऐसा करने की कोशिश कर रहा हूं।

मैंने उपाय छोटा कर दिया यहाँ दिया गया निम्नलिखित समारोह के लिए:

(add-hook 'python-mode-hook
          'my-python-send-statement)

(defun my-python-send-statement ()
  (interactive)
  (local-set-key [S-return] 'my-python-send-statement)
  (end-of-line)
  (set-mark (line-beginning-position))
  (call-interactively 'python-shell-send-region))

यह काम करता है, आधा। जब मैं इस कमांड को कई लाइनों के नीचे चलाता हूं, तो मुझे कई & gt; & gt; & gt; संकेत देता है और मैं यह पता नहीं लगा सकता कि केवल एक लाइन क्यों भेजी जाए। इसके अलावा, कभी-कभी परिणाम तुरंत नहीं दिखाया जाएगा, और मुझे कमांड को दो बार चलाना होगा। उदाहरण के लिए:

9 + 9 # .py फ़ाइल की लाइन 13 पर कमांड चलाएँ,

======

# result in Python shell.

>>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> 18

जवाबों:


3

अस्वीकरण : निम्नलिखित स्वयं विज्ञापन है ...

एक बफर और एक कोड दुभाषिया के बीच बातचीत के प्रबंधन के लिए, मैंने विकसित किया isend-mode

यहां बताया गया है कि आप इसका उपयोग कैसे करेंगे:

  1. एक टर्मिनल में अजगर दुभाषिया चलाएँ:

    एम एक्स ansi-term आरईटी /usr/bin/python आरईटी

  2. अपने अजगर कोड वाले बफ़र पर जाएँ:

    सी-एक्स my-buffer.py आरईटी

  3. इसे अपने टर्मिनल से संबद्ध करें:

    एम एक्स isend आरईटी *ansi-term* आरईटी

  4. प्रकार सी-आरईटी दुभाषिया के लिए वर्तमान बफर लाइन भेजने के लिए।

का फायदा isend-mode (मेरे दृष्टिकोण से, कम से कम) यह है कि यह भाषा-अज्ञेयवादी है। आप इसे उसी तरह से उपयोग कर सकते हैं जैसे कि अजगर, खोल, या जो भी व्याख्या की गई भाषा आपको पसंद हो।


0

ठीक है, अजगर-शेल को ब्राउज़ करने के बाद कुछ और काम करने के बाद मैंने एक हैक को एक साथ रखा जो मेरी समस्या को हल करता है: क्षेत्र भेजने के बाद एक प्रिंट कमांड भेजें! जिस भी कारण से यह सभी & gt; & gt; & gt; संकेत देता है।

(add-hook 'python-mode-hook
          'my-python-send-statement)

(defun my-python-send-statement ()
  (interactive)
  (local-set-key [S-return] 'my-python-send-statement)
  (end-of-line)
  (set-mark (line-beginning-position))
  (call-interactively 'python-shell-send-region)
  (python-shell-send-string "; print()"))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.