Tmux में विम गलत रंग दिखाते हैं


57

मैंने Ubuntu 11.10 स्थापित किया। फिर Gnome टर्मिनल के लिए Solarized विषय डाउनलोड किया। टर्मिनल से मेरा vim अच्छा लगता है: प्लगइन vim-powerline सही ढंग से प्रदर्शित होता है और सिंटैक्स को उचित रंगों के साथ हाइलाइट किया जाता है। लेकिन जब मैं tmux चलाता हूं और वहां vim - सिंटैक्स हाइलाइट केवल एक मूल रंग का उपयोग करता है और vim-powerline कोई रंग नहीं दिखाता है। मैंने vim-powerline और FAQ पर इस लाइन को .tmux-config में देखा जाना चाहिए:

set -g default-terminal "screen-256color"

लेकिन यह काम नहीं करता है। मैंने TERM को देखा और यह 'xterm' लौटा है इसलिए मैंने कोशिश की:

set -g default-terminal "xterm-256color"

लेकिन यह भी मदद नहीं की।

यह .tmux.config की एकमात्र लाइन है। .Vimrc में मेरी निम्न पंक्तियाँ हैं:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

पता नहीं क्यों आपको कोई उत्थान नहीं मिला, उन लोगों से भी नहीं जिन्हें अपने स्वयं के उत्तरों से उठकर लाभ हुआ होगा। मुझ से +1। सवाल ध्वनि का है और इसने मेरी स्वयं की समस्या को हल करने में मदद की, वह भी इसे पाकर।
0xC0000022L

जवाबों:


54

निम्नलिखित ध्वज के साथ tmux शुरू करना मेरे लिए इसे ठीक करता है:

tmux -2

tmux मैन पेज से:

-2 बल tmux मान लें कि टर्मिनल 256 रंगों का समर्थन करता है।


1
अच्छा संकेत है। जब स्क्रीन के साइग्विन संस्करण ने दुर्घटना को कम करना शुरू कर दिया तो मैं बहुत जल्दी फिर से tmux में वापस आ गया। इसे प्यार करना।
3

1
FYI करें - यह केवल एक चीज थी जिसने मेरे लिए tmux 2.3 और नवीनतम पॉवरलाइन के साथ काम किया। Vim और tmux स्टेटस बार में रंग वास्तव में अजीब थे।
प्लास्टर ग्रोव

28

मैं Ubuntu 10.04 LTS पर Byobu 5.17 और tmux 1.5 का उपयोग कर GitHub रेपो से नवीनतम Solarized का उपयोग करके एक ही समस्या आ रही है।

मैं इसे फ़ाइल $TERMमें निर्दिष्ट करके आंशिक रूप से ठीक करने में सक्षम था .bashrc:

export TERM="xterm-256color"

ऐसा लगता है, यह भी, कि लॉन्चपैड पर एक बग दायर किया गया है, लेकिन यह अभी तक हल नहीं हुआ है: बायोबू ठीक से डंपिंग प्रदर्शित नहीं कर रहा है


2
यह केवल एक चीज है जो मेरे लिए काम करती है!
tranquille

इसके अलावा Ubuntu 14.04 पर tmux 2.0 के
dukedave

यह ओएस एक्स के साथ-साथ हाहा पर समाधान है
जे

27

यह मेरे लिए काम किया

में .tmux.conf

set -g default-terminal "screen-256color"

में .vimrc

set term=screen-256color

.vimrc के लिए पुराने शब्द मान को हटा दें, मुझे विश्वास है कि यह काम करेगा


1
मेरे लिए काम नहीं करता है। tmux 1.8, vim 7.4.1816, ubuntu x86_64 कर्नेल के साथ 3.13.0-92-जेनेरिक। FYI करें।
3-12

1
यह मेरे लिए .vimrc सेटिंग्स के बिना काम करता है, केवल .tmux.conf।
जियोन सैंटोस

.Tmux.conf सेटिंग ने मेरे लिए चाल चली!
hesselbom

4

टर्मिनल प्रकार को ~ / .tmux.conf में स्क्रीन-256color पर सेट किया जाना चाहिए। यह tmux को बताता है कि TERM एवेरिडोनमेंट वैरिएबल को क्या सेट करना है, इसलिए यह वर्तमान सत्र के लिए काम नहीं करेगा - एक नई शुरुआत करें और फिर परीक्षण करें।

यदि यह अभी भी काम नहीं करता है, तो आप Vim का उपयोग करके चला सकते हैं:

TERM=screen-256color vi

यह पर्यावरण चर को केवल एकबार के vi निष्पादन के लिए निर्धारित करता है।

यदि वह सभी रंगों को प्रदर्शित नहीं करता है, तो परीक्षण करें कि क्या आपका टर्मिनल (मुझे यकीन नहीं है कि आप सिर्फ एक टर्मिनल एमुलेटर के साथ परीक्षण कर रहे हैं) 256 रंग पैलेट का समर्थन करने के लिए संकलित किया गया है - नीचे से पर्ल स्क्रिप्ट डाउनलोड और चलाएं विचाराधीन टर्मिनल एमुलेटर।

http://scie.nti.st/dist/256colors2.pl

पुनश्च। मुझे लगता है कि आपने पहले से ही टाइपो जॉर्डनब्रुक को देखा है।


2

जैसा कि Marcin Kaminski द्वारा समझाया गया है, यदि TERM=screen-256color vim <filename> आप के लिए काम करता है तो बस अपने निम्नलिखित जोड़ें.bashrc

TERM=screen-256color

और अपने में निम्नलिखित .tmux.conf:

set -g default-terminal "screen-256color"

मेरे पास एक ही समस्या थी, यह मेरे लिए काम करता है।


यह एकमात्र ऐसा काम था जो मेरे लिए काम करता था (tmux 1.8)।
यामानेको सेप

वास्तव में, मैंने अभी-अभी परीक्षण किया है, और केवल TERM=screen-256colorमेरे लिए पर्याप्त था, स्वतंत्र रूप से screen-256colorया इसके लिए tmux की स्थापना के लिए xterm-256color। धन्यवाद!
यामनेको

1

आपकी अंतिम पंक्ति में एक टाइपो है .vimrc

यह होना चाहिए colorscheme solarized

यकीन नहीं है कि अगर मदद करता है :)


0

हो सकता है कि आपको इस उत्तर में प्रलेखित समस्या हो ।

मूल रूप से, .tmux.conf सेटिंग काम करती है, और TERMकरने के लिए सेट है screen-256color, लेकिन तब tmux bash खोलता है और आपके .bashrc को कॉल करता है, जो TERMकुछ और (शायद xterm-256color) पर सेट होता है ।

इसका समाधान TERM.bashrc के बजाय अपनी टर्मिनल सेटिंग्स में सेट करना है। यदि यह विकल्प नहीं है, तो आप TERMअंदर .bashrc की जाँच कर सकते हैं और यदि यह पहले से ही है तो इसे बदल नहीं सकते screen-256color


0

Tmux शुरू करने वाले शेल में, जांचें कि या $TERMतो है xterm-256colorया screen-256color$ TERM बदलने का तरीका देखें :

  • आमतौर पर परिवर्तन ~/.Xresourcesसबसे अच्छा तरीका है (यदि समर्थित है)
  • के लिए GNOME टर्मिनल देख https://askubuntu.com/a/379472

एक विकल्प के रूप में, जैसा कि पवित्र मैकेरल ने कहा, आप tmux को 256color के माध्यम से बाध्य कर सकते हैं:

$ tmux -2

0

[सॉल्यूशन] [1] जो आपकी दृष्टि को विचलित कर सकता है और विस्तारित अवधि के लिए उपयोग करने के लिए विम को अप्रिय बना सकता है।

आप इसे चलाकर ठीक कर सकते हैं: Vim में या टर्म-स्क्रीन- 256color सेट करें या TERM = स्क्रीन-256color पर्यावरण के तहत Vim को पुनः लोड करके, जैसा कि कुछ विशेषज्ञ सुझाते हैं: http://sunaku.github.io/vv-256color-bce.html


2
[सॉल्यूशन] [1] से आपका क्या मतलब है? क्या आप किसी अन्य उत्तर को संदर्भित या लिंक करने की कोशिश कर रहे थे? उत्तर हमेशा एक ही क्रम में प्रकट नहीं होते हैं। मैं आपको यह स्पष्ट करने के लिए इसे विस्तारित करने की सलाह देता हूं कि आप जो कह रहे हैं वह "आपकी दृष्टि को परेशान कर सकता है और विम को समय की विस्तारित अवधि के लिए उपयोग करने के लिए अप्रिय बना सकता है।"
एलियाह कगन

0

अपने .bashrc या .zshrc में जोड़ें

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

और tmux -2 से भी शुरू करें


0

उन लोगों के लिए, जो रंगों पर समय का उपभोग कर रहे हैं, और अगर सोलरलाइज्ड विम tmux पर काम नहीं करता है, या विम के रंगों को खोजने से थक गया है, तो यह एक मिनट में काम करना चाहिए, यह भी पालन के रूप में आधिकारिक भंडार से है।

yum install vim-jellybeans

या

mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
touch ~/.vimrc 
sed -i '/colorscheme/d' ~/.vimrc
echo colorscheme jellybeans >> ~/.vimrc

यह सुंदर रंग सेट के साथ इसे ठीक कर देगा और पैटर्न इतने केंद्रित और उपयोगी हैं, अगर आपको उन हाइलाइट, खोज शब्दों को सेट करने का भी प्रयास किया जाता है, तो यह यही है। सब कुछ पहले से ही उपयोग करने के लिए निर्धारित है। आप कॉन्फ़िगरेशन फ़ाइल में रंग भी बदल सकते हैं।

यदि आप कुछ भी स्थापित नहीं करना चाहते हैं, लेकिन केवल सरल त्वरित समाधान है, तो ऊपर की अनदेखी करें और इसे vim में आज़माएं

:colo ron आप निम्न सेट के साथ 'रॉन' को भी बदल सकते हैं और यहां तक ​​कि पुनर्स्थापित भी कर सकते हैं solo default

blue 
darkblue 
default
delek
desert
elflord
evening
koehler
morning.vim
murphy
pablo
peachpuff
ron
shine
slate
torte
zellner

और .vimrc में सेव करें

colo ron
syntax on

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