टर्मिनल में कलर्सकेम की पृष्ठभूमि सही नहीं है


13

मैंने सोलाराइज्ड कलर्सकेम और पैलेट का आयात किया। मेरे टर्मिनल में सही रंग और पृष्ठभूमि है, gvim में सही रंग और पृष्ठभूमि है, लेकिन विम में गलत रंग की पृष्ठभूमि है। पाठ सभी सही है, लेकिन पृष्ठभूमि शुद्ध काली प्रतीत होती है।

यह टर्मिनल, जीवीएम और विम की तुलना है

यहाँ मेरा .vimrc है:

syntax enable

if has('gui_running')
    set background=dark
else
    set background=dark
endif

:set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized

अगर किसी के पास इस बारे में कोई सुझाव है कि यह क्या कारण हो सकता है, तो मैं बहुत मजबूर होऊंगा। मैं डिफ़ॉल्ट टर्मिनल के साथ xubuntu चलाते हैं।

मुझे यह भी उल्लेख करना चाहिए कि प्रकाश विकल्प का परिणाम विम के लिए बहुत ही पीले रंग की पृष्ठभूमि में है।


1
"[M] y टर्मिनल में सही रंग और पृष्ठभूमि है," क्या आपके कहने का मतलब है कि आपने टर्मिनल में विम के संबंध में विशिष्ट सलाह का पालन ​​किया है ?
एंड्रयू

2
मैंने @ सलाह का पालन किया। फिर भी आपका धन्यवाद।
ओबेरडीयर

@Oberdiear एंड्रयू लिंक की सलाह बताती है कि आपको सोलराइज़्ड रंगों का उपयोग करने के लिए अपना टर्मिनल सेट करना चाहिए, कि g:solarized_termcolors=256विकल्प का उपयोग करना चाहिए । यदि आप अपने टर्मिनल में सौर रंगों का उपयोग करने में खुश हैं, तो यह विधि बहुत बेहतर काम करती है। अपने प्रश्न का पाठ आप का मतलब है अपने टर्मिनल solarized रंगों का उपयोग करने के लिए (हालांकि स्क्रीनशॉट आप प्रदर्शित मेरे लिए नहीं लगती है जैसे कि यह करता है), तो उस स्थिति में, तुम क्यों प्रयोग कर रहे हैं की स्थापना g:solarized_termcolors=256की स्थापना?
रिच

आप किस टर्मिनल का उपयोग कर रहे हैं? मेरे पास यह स्क्रिप्ट है gnome-terminal
व्रचिन

@, मुझे लगता है कि मेरे पास पैलेट सही ढंग से सेट नहीं है। क्या आप (या कोई और) जानते हैं कि Xfce टर्मिनल के लिए सही तरीके से सेट कैसे किया जाता है?
ओबर्डियेयर

जवाबों:


10

मेरे विचार से ऐसा होने के दो कारण हैं:

  1. आपके द्वारा उपयोग किए जा रहे सोलराइज़्ड रंग स्कीम घोषित नहीं करता है ctermfgऔर ctermbgऐसी किसी भी सुविधा के लिए जिसे आप हाइलाइट करना चाहते हैं। इस रंग योजना को आज़माएं , अनिवार्य रूप से अपने टर्मिनल और जीवीएम के अंदर समान रूप से दिखना चाहिए, यदि यह मामला है, तो आपको एक रंग योजना का उपयोग करने की आवश्यकता पर विचार करना चाहिए जो घोषित करता है ctermfgऔर ctermbg

  2. आपको यह सुनिश्चित करने की आवश्यकता हो सकती है कि आपका टर्मिनल एम्यूलेटर उन रंगों का समर्थन करता है जिन्हें आप प्रदर्शित करने की कोशिश कर रहे हैं:


ध्यान दें कि यह दोनों चीजें एक ही समय में हो सकती हैं, लेकिन आपके सिस्टम के बारे में अधिक जानकारी के बिना इसका निदान करना कठिन है।


रेगिस्तान 256 ठीक काम करता है, लेकिन मैं बहुत बड़ा प्रशंसक नहीं हूं। मेरा मानना ​​है कि TERMचर गलत है, लेकिन मुझे नहीं पता कि इसे कैसे बदलना है।
ओबेरियार्डियर

2
मैंने ncurses-term स्थापित किया। मैंने फिर आज्ञा दी। इसे चलाने के बाद, सभी पाठ ग्रे हो जाते हैं और पृष्ठभूमि काली हो जाती है।
ओबर्डियेयर

1
यह export TERM=xterm+256color"कलर एस " (बहुवचन) नहीं होना चाहिए । इसके अलावा, मेरा मानना ​​है कि ऐसा होना चाहिए xterm-256color, न कि "** + ** 256color; लेकिन मैं विशेष रूप से सोलराइज़्ड के साथ इसका उपयोग करने के बारे में गलत हो सकता हूं। इस उत्तर के अनुसार ,# Entries with embedded plus signs are designed to be included through use/tc capabilities, not used as standalone entries.
एडवर्ड

export TERM=xterm+256colorOSX पर मुझेzle-line-finish:echoti:1: no such terminfo capability: rmkx
Xeoncross

मेरे पास यह सटीक मुद्दा था और export TERM=xterm+256colorsमैंने अपने टर्मिनल के रूप में सटीक पृष्ठभूमि के रंग का पता लगाने और उसका उपयोग करने में मदद की।
श्याम हाबड़ाकाड

5

बड़ी खुशखबरी, सबको। @Tom और @Rich ने मुझे सही रास्ते पर खड़ा किया। मैंने यहां एक समाधान प्रदान किया । मैंने अपना .vimrc सरल पर सेट किया है

syntax enable
set background=dark
set t_Co=16
colorscheme solarized

यह सब कुछ ठीक करने के लिए लगता है। रंग फ़ॉन्ट के उदाहरणों में उतने चमकीले नहीं लगते हैं , लेकिन यह बहुत अच्छा हो सकता है। किसी को भी जो Solarized colorcheme का उपयोग करना चाहता है और xfce4- टर्मिनल का उपयोग करता है, बस टर्मिनल आर्क को बदल रहा है और .vimrc मेरी मुख्य समस्याओं को हल करने के लिए लग रहा था। मदद के लिए सभी को धन्यवाद!


1
आपको set t_Coअपने vimrc में पंक्ति की आवश्यकता नहीं होनी चाहिए : Vim इस मान को टर्मिनल से पढ़ सकता है (सेटिंग 't_Co'एक Vim कार्गो पंथ का एक सा प्रतीत होता है: बहुत सारे लोग ऑनलाइन ऐसा करने की सलाह देते हैं, वास्तव में उन मुद्दों को समझने के बिना जो वे हल करने का प्रयास कर रहे हैं। ।)
रिच

मैं सिर्फ "स्क्रीन" और "tmux" कहूंगा - ये उपकरण $ TERM वेरिएबल को बदलते हैं, इसलिए विम को उस जानकारी को पढ़ने की जरूरत नहीं है जो उसे चाहिए।
NieDzejkob

@NieDzejkob आप एक टर्मिनल मल्टीप्लेक्सर का उपयोग कर सकते हैं और अभी भी एक सही ढंग से कॉन्फ़िगर किया गया टर्मिनल है।
रिच

@ क्या आपको यह समझाने में दिक्कत होती है कि टर्मिनल साइड पर सही फिक्स क्या है? मैं tmux का उपयोग कर रहा हूं $TERM=screenऔर सेटिंग t_Co=16वास्तव में मेरे लिए दृश्य समस्याओं को ठीक करता है, लेकिन मैं यह जानना चाहता हूं कि संबंध क्या है, पहली बार में।
फफक कर

@ffledgling मुझे अच्छा लगेगा। हालांकि, आगे-पीछे थोड़ा-थोड़ा करना पड़ सकता है, इसलिए मुझसे चैट में शामिल हों
रिच

4

मुझे लगता है कि यह colorschemeटर्मिनल के साथ इस की संगतता का मुद्दा है । प्लगइन csaproxचमत्कारिक ढंग से इस मुद्दे का एक गुच्छा हल।

सारांश:

टर्मिनल विम के लिए colorchemes खोजना मुश्किल है। अधिकांश कलरकेम केवल GVim का समर्थन करने के लिए लिखे गए हैं, और टर्मिनल Vim में बिल्कुल काम नहीं करते हैं।

यह प्लगइन टर्मिनल Vim में GVim-only colorschemes Just Work बनाता है, जब तक कि टर्मिनल 88 या 256 रंगों का समर्थन करता है - और इन दिनों सबसे अधिक करते हैं। इसके लिए आमतौर पर किसी उपयोगकर्ता की सहभागिता की आवश्यकता नहीं होती है (लेकिन अगर चीजें ठीक से काम नहीं करती हैं तो इसके लिए मदद देखें)। इस प्लगइन को खुशी से स्थापित करने के बाद, किसी भी समय आप इसका उपयोग :colorschemeअपने जादू को करेंगे और कलर्सकेम जस्ट वर्क करेंगे।

प्लगइन के लिंक:


1
यह एक उपयोगी प्लगइन है, लेकिन यहाँ मदद नहीं करेगा, क्योंकि सोलराइज़्ड कलर्सकेम पहले से ही 16-रंग और 256-रंग टर्मिनलों दोनों के तहत टर्मिनल विम में काम करने के लिए काफी प्रयास करता है।
रिच

4

सोलराइज्ड टर्मिनल-विम कलर्सकेम दो अलग-अलग तरीकों में से एक में काम कर सकता है।

  1. एक 16-रंग मोड: सोलराइज़्ड में केवल 16 रंग होते हैं, इसलिए इस मोड में आप सोलराइज्ड रंगों को इसके 16 रंगों के रूप में उपयोग करने के लिए अपना टर्मिनल सेट करते हैं, और विम कलर्सकेम इनका उपयोग करता है। इसलिए, उदाहरण के लिए, वीआईएम कलर्सकेम टर्मिनल रंग "1" का अनुरोध करेगा, और टर्मिनल इसे हेक्स रंग # dc322f के रूप में प्रदर्शित करता है।

  2. एक 256-रंग मोड, जहां यह 256-रंग पैलेट से अपने 16 रंगों के लिए निकटतम मैचों को चुनता है।

पूर्व विधि की दृढ़ता से लेखक द्वारा (और मेरे द्वारा) सिफारिश की जाती है , और ऐसा लगता है जैसे आप इस पद्धति का उपयोग करके खुश हैं क्योंकि आप कहते हैं कि आपके "टर्मिनल में सही रंग और पृष्ठभूमि हैं"।

हालांकि, यह अपने स्क्रीनशॉट से प्रतीत होता है कि अपने टर्मिनल करता नहीं सही रंग सेट है। (व्हाइट सोलराइज्ड सेट में एक रंग नहीं है, और हालांकि मैंने इसे आंखों पर पट्टी नहीं किया है, स्क्रीनशॉट में अन्य पाठ रंग मुझे ऐसा नहीं लगता है जैसे यह "वायलेट" (# 6c71c4) है, या तो।)

आप लाइनों की स्थापना को निकाल देते हैं t_Coऔर g:solarized_termcolorsअपने vimrc * से, और सही ढंग से अपने टर्मिनल रंग कॉन्फ़िगर करते हैं, तो आप पाएँगे कि 16-रंग solarized रंग-काम शुरू कर देंगे।

* ये लाइनें इसके (कम वफादार) 256-रंग मोड का उपयोग करने के लिए सौराइज़्ड स्विच करती हैं। यह भी काम करना चाहिए, (मुझे संदेह है कि @ जुबल ने सुझाव दिया है कि बीसीई यहां समस्या है ) में सही है, लेकिन 16-रंग मोड बेहतर है जब तक कि आप स्पष्ट रूप से अपने टर्मिनल में सौर का उपयोग नहीं करना चाहते।


मेरा मानना ​​है कि आप पूरी तरह से सही रास्ते पर हैं। मुझे लगता है कि मेरे पास पैलेट सही ढंग से स्थापित नहीं है। क्या आप मुझे इस प्रक्रिया के माध्यम से चल सकते हैं? मैं आपकी सभी मदद की सराहना करता हूं, @ रिच।
ओबर्डियेयर

1
ऐसा लगता है कि आपका पहला लिंक अब मृत हो चुका है।
एकोजी

@azoki मुझे बताने के लिए धन्यवाद। ऐसा लगता है कि Solarized साइट निर्माणाधीन है (पुनः)। मैंने कुछ समय के लिए जीथब रेपो में इंगित करने के लिए लिंक को बदल दिया।
रिच

3

लगता है जैसे आपको अपना जवाब मिल गया। मुझे भी यही समस्या थी और ऊपर कुछ भी काम नहीं आया। क्या मेरे लिए काम किया था का उपयोग कर विवाद केterminalrc रूप में करने का विरोध किया, sgerrand की

मेरा प्रासंगिक vimrcबस है:

syntax enable
set background=dark
colorscheme solarized

आशा है कि किसी की मदद करता है!


1

तो यह मेरे लिए काम करता है (उन सभी टर्मिनलों पर, जिनका मैं उपयोग करता था - xterm, konsole, gnome-terminal, iterm2, roxterm - लिनक्स और OS X दोनों पर, gvim और macvim के साथ भी:

" no other configuration than this needed for solarized
colorscheme solarized
highlight SpecialKey ctermfg=11 ctermbg=8

if &term =~ '256color'
  " Disable Background Color Erase (BCE) so that color schemes work
  " properly within 256-color terminals
  set t_ut=
endif

इससे t_Co = 16 सेट करने में समान समस्या हुई। मुझे पूरा यकीन है कि मुझे पैलेट के साथ एक समस्या है, लेकिन मुझे अभी तक यह पता लगाना है।
ओबर्डियेयर

आप किस टर्मिनल एमुलेटर का उपयोग कर रहे हैं? अगर मुझे सही ढंग से याद है, तो कॉनसोल का बिल्ट-इन सोलराइज्ड कॉन्फ़िगरेशन पूरी तरह से प्रयोग करने योग्य नहीं है और मूल सोलराइज़्ड रिपॉजिटरी से सेटिंग्स का उपयोग करने की आवश्यकता है ...
जुबैल

मैं Xfce Terminal का उपयोग करता हूं।
ओबेरियार्डर

मुझे लगता है कि मुझे यह काम कर रहा है: टर्मिनल की प्राथमिकताओं से सोलराइज़्ड प्रीसेट का उपयोग करते हुए TERM को xterm-256color के लिए मजबूर करने की कोशिश करें, न कि सोलराइज़्ड xfce- टर्मिनल गिट रिपॉजिटरी से। ऊपर BCE हैक के साथ इसने मेरे लिए xfce4- टर्मिनल की चाल चली।
जुब्बल

(अंतर्निहित टर्मिनल इम्यूलेशन और फॉन्ट रेंडरिंग के साथ अभी भी कुछ गड़बड़ है , और मुझे लगता है कि मुझे याद दिलाया गया है कि मैं लिनक्स पर सादे पुराने xterm में क्यों गया था ...)
जुबैल

0

यह काम पाने के लिए एक दर्द था (मैं लिनक्स मिंट में टर्मिनल विम का उपयोग करता हूं), और दुर्भाग्य से मैंने जो कुछ भी किया, उसकी बारीकियों को नहीं लिखा। यहाँ मेरे vimrc का प्रासंगिक अनुभाग है:

syntax enable
set background=dark
set t_Co=16
colo solarized

यह GitHub पर इस परियोजना की जाँच के लायक भी हो सकता है


t_Co = 16 सेट करता है कि रंग अपेक्षा से अलग है। मैं भी डिफ़ॉल्ट Xubuntu टर्मिनल Xfce- टर्मिनल का उपयोग कर रहा हूँ।
ओबेरडीयर

@Oberdiear अगर t_Co = 16 सेट करना इस तरह से रंगों को प्रभावित करता है (जी के साथ: Solarized_termcolors वेरिएबल अनसेट) तो इसका मतलब है कि सोलराइज्ड का उपयोग करने के लिए आपके टर्मिनल रंगों को सही तरीके से सेट नहीं किया गया है। आप अपने टर्मिनल रंग कैसे सेट कर रहे हैं?
रिच

0

आपके सेटिंग्स के इस हिस्से को हटाने के लिए मेरे लिए क्या काम किया गया था

if has('gui_running')
   set background=dark
else
   set background=dark
endif

मैं एक xfce4- टर्मिनल चला रहा हूं


0

मुझे भी यह समस्या थी xfce-terminal

थोड़ी खोजबीन के बाद, मैंने इस बग की खोज की : $TERMआपके एक्सएफसीई टर्मिनल में आपके द्वारा निर्धारित कुछ भी चुपचाप नजरअंदाज कर दिया गया है।

मुझे लगता है कि यह वास्तव में पुराने VTE लाइब्रेरी (जो अभी भी GTK + 2 आधारित) का उपयोग करता है, अंतर्निहित (और अचयनित) पुराने VTE लाइब्रेरी का एक बग है । GTK + 3 टर्मिनल पर स्विच करना, जो कि नए VTE लाइब्रेरी का उपयोग करता है , ने इस मुद्दे को हल किया।

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