tmux, Vim और Solarized


19

घर

Tmux , Vim और Solarized के आसपास ब्राउज़ करने से मुझे 256 रंगों और "उपयोगकर्ता अनुभव" के बारे में बहुत सारी शिकायतें मिल सकती हैं। ठीक है, मैं विपरीत "समस्या", यानी आ रही हैं विम एक पूर्ण के साथ अच्छी तरह से काम करता है Solarized विषय केवल में tmux

पृष्ठभूमि

मैं अपने Ubuntu टर्मिनल की और गुआक की रंग योजना के साथ अब कुछ समय के लिए ट्विक और ट्यूनिंग कर रहा हूं और मुझे लगभग पूर्णता मिल गई है, जो कि मैं tmux का उपयोग कर रहा हूं , जो बदले में हमेशा होता है। मैं अब समझने की कोशिश कर रहा हूं कि ऐसा क्यों हो रहा है।

यहाँ नीचे दो टर्मिनल हैं, बाईं ओर एक केवल विम (वर्तमान दिखा .vimrc) चला रहा है जबकि दूसरा विम एक tmux सत्र के अंदर चल रहा है । जैसा कि आप स्पष्ट रूप से देख सकते हैं, केवल tmux सत्र में फोंट बोल्ड हैं, जो मुझे लगता है कि सही है (या नहीं?)।

यहाँ छवि विवरण दर्ज करें

सवाल

क्यों tmux बोल्ड फ़ॉन्ट के लिए अनुमति देता है जबकि टर्मिनल, जहाँ tmux चल रहा है, नहीं? यह एक बग या एक सुविधा है?


echo $TERMइन और आउट का आउटपुट क्या है tmux?
जसोनव्रीयन

tmux कहते हैं, screenजबकि टर्मिनल कहता है xterm:)
Atcold

@ajonwryan ने ओपी के अन्य प्रश्न यहाँ पढ़े और गिल्स का उत्तर भी इसी तरह का है । जाहिर $TERMहै कि प्रासंगिक नहीं है।
terdon

@terdon यह इस मामले में सामग्री है: tmux के लिए यह आवश्यक है कि यह शब्द स्क्रीन (या एक प्रकार) पर सेट हो और xterm डिफ़ॉल्ट रूप से, एक 8 रंग का शब्द है। इसलिए ओपी को अंतर दिखाई दे रहा है।
jasonwryan

xterm*termName: xterm-256colorअपने अंदर रखो ~/.Xresourcesऔर देखो कि क्या फर्क पड़ता है ...
jasonwryan

जवाबों:


22

संक्षिप्त जवाब

यह एक बग है।

पूरा जवाब

ऐसा लगता है कि "सही" दृश्य की तरह छोड़ दिया है, जहां पर एक है मोटे अक्षरों कर रहे हैं नहीं प्रदान की गई। जो मैं समझ सकता था ( यहां संदर्भ है) के लिए बोल्ड विशेषता का उपयोग किया गया था, मूल रूप से, 8 बेस रंगों के हाइलाइट किए गए संस्करण को सेट करने के लिए।

ऐतिहासिक रूप से, 8 डिफ़ॉल्ट ANSI रंगों के बोल्ड संस्करणों और 8 डिफ़ॉल्ट रंगों के उज्ज्वल संस्करणों के बीच एक-से-एक पत्राचार हुआ है। दिन में वापस, जब एक रंग कार्यक्रम ने बोल्ड टेक्स्ट के प्रदर्शन की मांग की थी, तो टर्मिनल एमुलेटर के लिए यह सिर्फ इतना आसान था कि टेक्स्ट जो भी रंग था, उसका एक उज्जवल संस्करण प्रदर्शित करें (और उम्मीद करें कि उपयोगकर्ता इसे बोल्ड के रूप में व्याख्या करें) एक बोल्ड वजन के साथ टाइपफेस।

मूल रूप से, यहां क्या हो रहा है, नारंगी , बैंगनी और ग्रे के सभी स्तरों के साथ पूर्ण Solarized पैलेट का उपयोग करने के लिए , रंगों को बोल्ड विशेषता के साथ कहा जाता है , जो बदले में वैकल्पिक 8 रंगों को संदर्भित करता है । ANSI पैलेट।

टर्मिनल इसे सही ढंग से समझता है, और नारंगी और टिप्पणी को सामान्य टाइपसेटिंग में ग्रे दिखाता है , जबकि tmux उनके लिए एक अनावश्यक बोल्ड फ़ॉन्ट जोड़ता है। निष्कर्ष में, बाईं ओर सही है जबकि दाईं ओर नहीं है।

प्रश्न 2

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

उत्तर २

और यहाँ हमारे पास समाधान है! :)

Tmux का सही ढंग से व्यवहार करने के लिए हमें उसे यह कहते हुए कॉल करना होगा कि हम 256 रंगों वाले वातावरण में हैं।

TERM=xterm-256color /usr/bin/tmux

सुविधा के लिए हम aliasयह कर सकते हैं (यानी आप alias tmux="<the line above>"अपने में जोड़ें ~/.bashrc)।

tmux गैर-बोल्ड "बोल्ड-वैकल्पिक" रंगों की सही व्याख्या करता है

के tmuxरूप में कॉलिंग tmux -2, के लिए मजबूर करने के लिए tmux को 256 रंगों के समर्थन के साथ चलाने के लिए ( TERMपर्यावरण चर को फिर से परिभाषित करने के बजाय ) "बोल्ड-वैकल्पिक" 8 रंगों की सही व्याख्या करने की अनुमति नहीं देगा (अर्थात उज्ज्वल संस्करण में भी बोल्ड टाइपसेटिंग होगा)। इसलिए, मैं अत्यधिक सही 256 रंगों की व्याख्या और गैर-बोल्ड "बोल्ड-वैकल्पिक" दोनों रंगों के लिए ऊपर दिए गए समाधान का उपयोग करने की सलाह देता हूं ।


बहुत प्यार इंसान !!
shxfee
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.