2012-12-13 10 views
13

मैं Emacs 24.2 का उपयोग करता हूं। मैं js-comint और js-modeMELPA से इंस्टॉल किया है run-js मार डाला, और अब > संकेत के बजाय आरईपीएल में मैं इस निरर्थक शब्द है:Emacs में JS-comint के साथ Node.js का उपयोग

^[[1G> ^[[0K^[[3G 

अवर जावास्क्रिप्ट मोड में आरईपीएल ही बस ठीक काम करता है, बस > संकेत बदल गया है । यदि आप अधूरा अभिव्यक्ति दर्ज करते हैं, तो यह ^[[1G... ^[[0K^[[5G प्रिंट भी करता है। ^[ सिस्टम वर्ण हैं, जिन्हें कॉपी-पेस्ट के साथ कॉपी नहीं किया गया है, मैं उन्हें आपके लिए एक विचार रखने के लिए जोड़ता हूं।

मेरी init-फ़ाइल में:

(require 'js-comint) 
(setq inferior-js-program-command "nodejs") 

टर्मिनल nodejs बुला में आरईपीएल काम कर उत्पादन।

इस तरह से तत्काल क्यों व्यवहार करता है? इसे सही करने के लिए मुझे क्या करना चाहिए?

उत्तर

17
(setq inferior-js-mode-hook 
     (lambda() 
     ;; We like nice colors 
     (ansi-color-for-comint-mode-on) 
     ;; Deal with some prompt nonsense 
     (add-to-list 
     'comint-preoutput-filter-functions 
     (lambda (output) 
      (replace-regexp-in-string "\033\\[[0-9]+[GK]" "" output))))) 

\033 एस्केप वर्ण यह ^[ के रूप में प्रिंट है।

+0

लेकिन तत्काल कचरा क्यों उत्पन्न करता है? –

+1

अंतिम कथन में मामूली संपादन किया गया: '(प्रतिस्थापन-regexp-in-string" \ 033 \\ [[0-9] + [ए-जेड] "" आउटपुट)))) ' – narayan

17

बस अपने .emacs में एक पंक्ति जोड़ें:

(setenv "NODE_NO_READLINE" "1") 

उत्तर इस पोस्ट से आते हैं: Node.js prompt '>' can not show in eshell

+0

+1। यह मूल रूप से मेरे लिए काम किया, धन्यवाद। मैंने अपनी ऐप निर्देशिका में 'repl' नाम की एक फ़ाइल बनाई, और इसमें NODE_NO_READLINE = 1 नोड डाला। फिर बस एक emacs खोल के भीतर से ./repl को कॉल करें और आपको सही मॉड्यूल स्कोपिंग के साथ emacs के अंदर एक नोड प्रतिलिपि प्राप्त करें और कोई आउटपुट giberrish नहीं है। – Scott

1

सुनिश्चित नहीं हैं कि हाल ही में, लेकिन अब एक डाउनलोड कर सकते हैं और nodejs-repl का उपयोग करें।

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