2010-06-18 16 views
35

Emacs में काम करते समय, मैं प्रोग्राम्स चलाने के लिए संकलन कमांड (डिफ़ॉल्ट रूप से F12) का उपयोग करता हूं। जब मैं Emacs में ककड़ी चलाता हूं, ककड़ी एएनएसआई रंग निकालती है कि Emacs संकलन मोड व्याख्या नहीं करता है। नतीजा बदसूरत और पढ़ने के लिए मुश्किल है।ककड़ी के एएनएसआई रंग emacs संकलन बफर गड़बड़

^[[31m(::) failed steps (::)^[[0m 

आदेश मैं उपयोग कर रहा हूँ:

(cd ~/lab/rails/todolist && rake cucumber:all) 

संस्करण:

  • Emacs 23.1
  • ककड़ी 0.8 यहाँ * संकलन * बफर का एक टुकड़ा बदसूरत दिखा है। 3
  • ककड़ी-रेल 0.3.2

दुनिया धूप होगी और पक्षियों गायन करता है, तो मैं कर सकता:

  • Emacs अपने संकलन बफर में एएनएसआई रंग कोड की व्याख्या पर पहुंचें या
  • ककड़ी एएनएसआई रंग कोड बाहर थूकना को रोकने के लिए जाओ

कोई विचार?

उत्तर

62

मैं अपने संकलन बफर में एएनएसआई रंग व्याख्या चालू करने के लिए इस का उपयोग करें:

(require 'ansi-color) 
(defun colorize-compilation-buffer() 
    (let ((inhibit-read-only t)) 
    (ansi-color-apply-on-region (point-min) (point-max)))) 
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer) 
+4

यही कारण है कि मुझे इस जगह से प्यार है। महान समाधान; एक जादू की तरह काम करता है। धन्यवाद! –

+0

बिल्कुल वही जो मैं खोज रहा था! दुर्भाग्यवश, मेरे पर्यावरण (साइगविन-xemacs) में यह "प्रक्रिया फ़िल्टर में त्रुटि" के साथ (बफर-रीड-केवल # <बफर "* संकलन *">) पर क्रोक किया गया, जो बहुत अजीब लगता है। कोई विचार? – thoni56

+0

यह मेरे लिए भी बहुत अच्छा काम करता है। मैंने '(लिनम-मोड 0) '(और, पहले प्रयास' (लाइन-नंबर-मोड 0) 'में भी जोड़ा, जो काम नहीं करता था, लेकिन मैंने वैसे भी छोड़ा, और किसी और के लिए काम कर सकता है), (टॉगल-रीड-ओनली) ', जो मुझे इतना ज्यादा खुश बनाता है (लाइनों का एक गुच्छा जो अभी मुश्किल से लपेट रहा था) नहीं। – lindes

19

मैं तो यह आदेश और अधिक कुशल की तरह M-x grep को दूषित नहीं करता कोड में सुधार:

(ignore-errors 
    (require 'ansi-color) 
    (defun my-colorize-compilation-buffer() 
    (when (eq major-mode 'compilation-mode) 
     (ansi-color-apply-on-region compilation-filter-start (point-max)))) 
    (add-hook 'compilation-filter-hook 'my-colorize-compilation-buffer)) 
+0

** नोट ** मैं केवल Emacs 24.x के साथ इस कोड का परीक्षण करता हूं, यह संस्करण 23.x या उससे कम में काम नहीं कर सकता है ... – gavenkoa

+0

यह ठीक काम करता है, क्यों '(ऐड-हुक' संकलन-फ़िल्टर-हुक 'ansi -रंग-के-कॉमेंट-मोड-ऑन) 'नहीं? –

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