2012-12-26 8 views
6

मुझे उस प्लगइन को समाप्त करने के लिए इसकी आवश्यकता है जो मैं मोड के आधार पर स्टेटसलाइन के रंगों को बदलने के लिए कर रहा हूं।कुछ रंगों के लिए वर्तमान रंगीन रंग का उपयोग करने के लिए एक निश्चित रंग मान कैसे प्राप्त करें?

हालांकि मैं एक स्पष्ट समस्या से चला गया हूं, मुझे कैसे पता चलेगा कि उपयोगकर्ता किस विषय का उपयोग कर रहा है? और यहां तक ​​कि अगर मुझे पता था कि मैं प्रत्येक विषय के लिए विशिष्ट रंग नहीं बना सकता।

तो, उदाहरण के लिए स्टेटलाइनलाइन के लिए वर्तमान विषय का उपयोग करने वाले अग्रभूमि और पृष्ठभूमि रंगों को कैसे जानें।

संपादित करें 1:

मामले में मैं स्पष्ट नहीं था, मैं ctermfg/bg और guifg/कुछ सामान के लिए bg पता लगाने के लिए एक रास्ता तलाश कर रहा हूँ। अभी स्टेटसलाइन। :)

संपादित करें 2:

जाहिर है अगर मैं :hi StatusLine कर रहा है लेकिन मैं इसके बारे में बिल्कुल भी नहीं है कि यह परिष्कृत करने के लिए केवल मूल्य प्राप्त करने की आवश्यकता है, और मैं अपनी ज़रूरत की चीज़ों,। मान लीजिए कि मुझे मूल्य जानने के लिए कुछ रेगेक्स का उपयोग करना होगा। अगर कोई आसान तरीका जानता है तो कृपया इसे साझा करें (या यदि आप इसे पहले से ही रेगेक्स के साथ समझ चुके हैं)। धन्यवाद!

उत्तर

11

आप विभिन्न विशेषताओं वाक्य रचना हाइलाइटिंग की (अग्रभूमि और पृष्ठभूमि रंग) की तरह क्वेरी करने के लिए synIDattr() समारोह का उपयोग कर सकते में हैं। हाइलाइट समूह की आईडी निर्धारित करने के लिए, hlID() का उपयोग किया जा सकता है। देखें :help hlID():

:echo synIDattr(synIDtrans(hlID('StatusLine')), 'fg') 
+0

वही है जो मैं ढूंढ रहा था! धन्यवाद! – greduan

1

आप :help background के अनुसार

:echo &background 

के साथ पृष्ठभूमि प्राप्त कर सकते हैं वहाँ एक foreground की स्थापना, भी होना चाहिए, लेकिन यह मेरे लिए काम नहीं करता।

संपादित करें: चर guibg, guifg, ctermbg और ctermfg:hi[glight]

+0

ओह नहीं, मेरा मतलब अंधेरा/हल्का पृष्ठभूमि का उपयोग करने का विकल्प नहीं है। बल्कि यह जानने का एक तरीका है कि विषय किस रंग का उपयोग कर रहा था। उदाहरण के लिए टिप्पणियों के लिए विषय का उपयोग करने वाले सटीक रंग को कैसे जानना है। – greduan

+0

ओह मैंने आपके द्वारा इंगित दस्तावेज़ों को पढ़ा और मुझे लगता है कि यह हो सकता है, हालांकि मुझे यकीन नहीं है। – greduan

+0

'और fg' और' & bg' का उपयोग करना संभव हो सकता है, हालांकि मुझे यह सुनिश्चित करने के लिए कुछ परीक्षण चलाने की आवश्यकता है। यदि आप निश्चित रूप से मुझे इसके बारे में बताना सुनिश्चित करते हैं। :) – greduan

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