2010-09-03 14 views
44

मैंने एक प्रतिलिपि कंसोल में बहुत सारे कोड के साथ खेला है, मैं इसे कैसे साफ़ कर सकता हूं? मैं इसे फिर से शुरू किए बिना एक ताजा चाहता हूँ। क्या यह किया जा सकता है?क्या मैं प्रतिलिपि को साफ कर सकता हूं?

उत्तर

17

आप एक टर्मिनल विंडो के माध्यम से repl चला रहे हैं (जैसे: MacOS या टर्म/aterm/urxvt आदि लिनक्स पर पर Terminal.app) तो आप नियंत्रण-एल टाइप कर सकते हैं और यह टर्मिनल विंडो स्पष्ट और देना चाहिए आप एक नया प्रतिकृति संकेत। हालांकि आपके द्वारा पहले परिभाषित सभी मैक्रोज़/परमाणु अभी भी स्मृति में होने जा रहे हैं, इसलिए यह सिर्फ "प्रसाधन सामग्री" स्पष्ट है।

+0

प्रारंभिक प्रश्न प्रतिलिपि को कॉस्मेटिक रूप से साफ़ करने के बारे में था। बाद में मुझे एहसास हुआ कि समाशोधन का मतलब कुछ और हो सकता है :) – Belun

48

आप सभी अस्थायी चर और कार्यों की वर्तमान नाम स्थान साफ़ करना चाहते हैं आप घोषित आप इस एक लाइनर का उपयोग कर सकते हैं (या उसका एक कार्य करना):

(map #(ns-unmap *ns* %) (keys (ns-interns *ns*))) 

या

(ns myutil) 
(defn ns-clean 
     "Remove all internal mappings from a given name space or the current one if no parameter given." 
    ([] (ns-clean *ns*)) 
    ([ns] (map #(ns-unmap ns %) (keys (ns-interns ns))))) 
(ns mytest) 

... make loads of junk ... 

(myutil/ns-clean) 

... great!!! I can now make all new junk ... 

यह आपको एक स्क्केकी क्लीन नेमस्पेस देने का दावा नहीं करता है, केवल एक जंक के साथ जो आमतौर पर एक सामान्य प्रतिलिपि सत्र में जमा होता है।

सावधानी के साथ प्रयोग करें: अपने पैरों के नीचे से गलीचा खींचें मत!

+1

धन्यवाद। मैं बस कंसोल में पाठ से छुटकारा पाने के बारे में सोच रहा था ... आप इसमें नई रोशनी डालते हैं – Belun

+3

यह सही सवाल की तलाश में एक अद्भुत जवाब है। –

18

Emacs/कीचड़ REPLs प्रतिलिपि सह में पिछले निर्गम (मामले में आप कुछ है जो एक बहुत लंबे जवाब दिया टाइप किया है) प्रतिलिपि मो पूरी बात

सूक्ति टर्मिनल में साफ करता है को साफ करता है, तो आप मिल गया है एक मेनू विकल्प टर्मिनल/रीसेट और साफ़

+1

ध्यान दें कि सी-सी एम-ओ वास्तव में पहले से ही आरईपीएल द्वारा व्याख्या किए गए किसी भी काम को मिटा नहीं देता है, यह सिर्फ स्क्रीन को साफ़ करता है। कोई परिभाषा अभी भी वहां है। – johnbakers

3

आप Emacs + nREPL, आप कर सकते हैं या तो उपयोग कर रहे हैं:

  • भागो एमएक्सnrepl-clear-bufferया
  • भागो सीएम

कुंजी बाइंडिंग सक्षम नहीं है, को चलाने एमएक्सnrepl-interaction-mode इसे सक्षम करने के। आप nrepl.el में अन्य उपयोगी शॉर्टकट ढूंढ सकते हैं और/या अपनी आवश्यकताओं के अनुसार कुंजी बाइंडिंग को कस्टमाइज़ कर सकते हैं।

नोट: यदि आप M-x vnrepl-mode-map चल रहा है और nrepl.el लिंक का पालन करके सभी nREPL के आपके सिस्टम में कुंजी बाइंडिंग पा सकते हैं।

+0

क्यों हाँ मैं emacs चला रहा हूँ। यह बहुत अच्छा काम करता है, धन्यवाद! :) – enderland

4

shorcut पूरे बफर साफ करने के लिए: सी - यूसी - सी -

शॉर्टकट पिछले उत्पादन साफ ​​करने के लिए: सी - सीसी -

ध्यान दें, पुराने तरीके से किया गया था: सी - एम -

2

मैं उपयोग Emacs एम एक्स के माध्यम से cider-repl-clear-buffer आदेश। एक उपसर्ग तर्क के साथ cider-repl-clear-output का भी उपयोग कर सकता है: सी-यू सी-सी सी-ओ

0

यह निर्भर करता है कि आप 'साफ' से क्या मतलब रखते हैं। 'पैकेज' के भीतर सभी नेमस्पेस को निकालने के लिए आप इसका उपयोग कर सकते हैं:

(mapv remove-ns 
    (map symbol 
    (filter #(.startsWith % "org.mycompany") 
     (map str (all-ns))))) 
संबंधित मुद्दे

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