2012-12-07 16 views
6

मैं Emacs 24 का उपयोग करता हूं और जब मैं शेल-मोड (ls कमांड) में हूं, तो dirs और फ़ाइलों का रंग बदलना चाहता हूं। आदर्श रूप से - फ़ाइल के अधिकारों के आधार पर।Emacs, एम-एक्स खोल में कुछ रंग कैसे बदलें?

मैं यह कैसे कर सकता हूं?

मैं

(setq ansi-color-names-vector 
     ["black" "red" "green" "yellow" "PaleBlue" "magenta" "cyan" "white"]) 
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) 

के साथ खेल की कोशिश की लेकिन मुझे लगता है यह मेरे लिए काम नहीं करता।
अब मेरे पास सौर रंग योजना है। लेकिन मैं केवल शैल-मोड के लिए, इसके रंगों को बदलना नहीं चाहता हूं।

संपादित करें:
जब मैं अपने सिस्टम टर्मिनल के लिए रंग (मेरे घर निर्देशिका में .dircolrs फ़ाइल का उपयोग) को बदलने - Emacs इसे पढ़ता है, लेकिन यह (Emacs) थोड़ा रंग बदल जाता है - यह एक रंग एक सा गहरा बना देता है या खोल मोड में हल्का।

और मुझे नहीं पता कि Emacs ऐसा क्यों करता है।

अलग dirs रंग (खेल, लोक ...:
इस प्रणाली के टर्मिनल है: enter image description here
और यह Emacs है: enter image description here

ये डिफ़ॉल्ट रंग और बनाया solarized-विषय Emacs के साथ रंग बदल रहे हैं, एक नीले रंग की पृष्ठभूमि पर नीले dirs।

मैं समझता हूँ कि यह एक बड़ी समस्या एक हैक लगाने के लिए नहीं है, सिर्फ जानना क्यों Emacs रंग बदल जाता है एक सा चाहता हूँ।

+0

मेरा emacs खोल emacs बफर पृष्ठभूमि रंग के साथ 'zsh' द्वारा सेट फ़ॉन्ट रंगों का उपयोग करता है। क्या यह आपकी बात नहीं है? – asm

+0

@AndrewMyers, मुझे लगता है कि हाँ, तो मुझे bash config में रंग बदलने की जरूरत है। असल में मैं जानना चाहता था कि यह emacs में किया जा सकता है। – Sergey

+0

मैं देखता हूं, अगर आप 'एम-एक्स कस्टमाइज़-ग्रुप' 'ansi-colors' करते हैं तो क्या आपको एक अनुकूलन समूह मिलता है? मैं वहां ansi-color-names-vector देखता हूं। – asm

उत्तर

5

एच ere है जो मैं emacs के लिए सौर रंग सेट करने के लिए उपयोग करता हूं। मैं आगे बढ़ गया और किसी भी अन्य सेटिंग्स उपयोगी होने पर मेरी पूरी ansi-term कॉन्फ़िगरेशन पोस्ट की गई।

(use-package ansi-term 
    :defer t 
    :init 
    (progn 

    ;; ;; Use variable width font faces in current buffer 
    (defun my-buffer-face-mode-variable() 
    ;; "Set font to a variable width (proportional) fonts in current buffer" 
     (interactive) 
     (setq buffer-face-mode-face '(:family "Menlo For Powerline" :height 100)) 
     (text-scale-adjust 1) 
     (buffer-face-mode)) 

    (setq system-uses-terminfo nil) 
    (add-hook 'term-mode-hook 
       '(lambda() 
       (linum-mode 0) 
       (term-set-escape-char ?\C-z) 
       (term-set-escape-char ?\C-x) 
       (define-key term-raw-map "\C-c" 'term-interrupt-subjob) 
       (define-key term-raw-map (kbd "M-x") 'execute-extended-command) 
       (setq autopair-dont-activate t) 
       (setq ac-auto-start nil) 
       (visual-line-mode -1) 
       ;; (my-buffer-face-mode-variable) 
       )) 

    (defun my-term-paste (&optional string) 
     (interactive) 
     (process-send-string 
     (get-buffer-process (current-buffer)) 
     (if string string (current-kill 0)))) 

    (defun my-term-pasteboard-paste() 
     (interactive) 
     (process-send-string 
     (get-buffer-process (current-buffer)) 
     (ns-get-pasteboard))) 

    (add-hook 'term-exec-hook '(lambda() 
           (set-buffer-process-coding-system 'utf-8-unix 'utf-8-unix) 
           (goto-address-mode) 
           (define-key term-raw-map (kbd "C-y") 'my-term-paste) 
           (define-key term-raw-map (kbd "s-v") 'my-term-pasteboard-paste) 
           (let ((base03 "#002b36") 
             (base02 "#073642") 
             (base01 "#586e75") 
             (base00 "#657b83") 
             (base0 "#839496") 
             (base1 "#93a1a1") 
             (base2 "#eee8d5") 
             (base3 "#fdf6e3") 
             (yellow "#b58900") 
             (orange "#cb4b16") 
             (red "#dc322f") 
             (magenta "#d33682") 
             (violet "#6c71c4") 
             (blue "#268bd2") 
             (cyan "#2aa198") 
             (green "#859900")) 
            (setq ansi-term-color-vector 
             (vconcat `(unspecified ,base02 ,red ,green ,yellow ,blue 
                   ,magenta ,cyan ,base2)))))) 
+0

उत्तर के लिए धन्यवाद, यह मेरे लिए बहुत उपयोगी होगा, लेकिन मुझे अभी पता चला कि समस्या का हल क्या हुआ (कम से कम मैं अब मैन्युअल रूप से रंग सेट कर सकता हूं) – Sergey

7

कहीं मैं इस पाया, और यह मुझे मदद की (मैं एक पूरा नौसिखिया हूँ, लेकिन मैंने सोचा कि setq ansi-color-names-vector पर्याप्त होगा):

(setq ansi-color-names-vector 
     ["black" "tomato" "PaleGreen2" "gold1" 
     "DeepSkyBlue1" "MediumOrchid1" "cyan" "white"]) 
(setq ansi-color-map (ansi-color-make-color-map))  # this helped 

अब खोल में ansi-color-names-vector काम करता है।

+0

क्या आप किसी भी मौके से जानते हैं कि उन रंग मैपिंग का अंतःक्रियात्मक परीक्षण करने का कोई तरीका है? अर्थात। प्रत्येक परिवर्तन – dolzenko

+0

@dolzenko के बाद खोल को पुनरारंभ करने के बजाय, यह नहीं पता कि – Sergey

6

M-x customize-variable RET ansi-color-names-vector RET

मौजूदा पाठ प्रभावित नहीं किया गया है, लेकिन हाल में पाठ (यहां तक ​​कि एक ही खोल बफर में) मुद्रित नए रंग दिखाएगा।

+0

ऐसा करने के लिए मुझे नहीं लगता कि यह सबसे अच्छा जवाब है।परिवर्तनीय को अनुकूलित करने और इसे सहेजने के बाद आप यह देखने के लिए अपनी .emacs फ़ाइल का निरीक्षण कर सकते हैं कि अनुकूलन कैसे किया गया और सहेजा गया। – Qrt

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