tmux vim colorcheme बैकग्राउंड नहीं दिखा रहा है


12

मैंने tmux स्थापित किया है, लेकिन अब टेक्स्ट मोड vim colorchemes पृष्ठभूमि रंग को ठीक से नहीं भरता है। यहाँ यह सामान्य Ubuntu 14.10 टर्मिनल में colorcheme xoria256 के साथ कैसा दिखता है:

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

और यहाँ जब मैं इसे tmux के बाद ठीक उसी टर्मिनल में चलाता हूँ:

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

तो जैसा कि आप देख सकते हैं कि डेस्कटॉप कहीं से भी दिखाई दे रहा है जहाँ कोई पाठ नहीं है। मेरे पास 256 रंग का टर्मिनल है।

मेरा .tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

और मेरे पास 256 रंग का टर्मिनल है:

~ tput colors
256

मैं vm 256-color colorhemhemes के साथ ठीक से काम करने के लिए tmux कैसे प्राप्त करूं जो सामान्य टर्मिनल में ठीक काम करता है?


मेरे अनुभव में, tmux अजीब व्यवहार करता है जब अंदर लॉन्च किया जाता है gnome-terminal। Tmux को लॉन्च करने का प्रयास करें TERM=xterm tmuxऔर देखें कि क्या यह अलग तरह से व्यवहार करता है। यदि xtermकाम नहीं करता है, तो प्रयास करें xterm-256colorया xterm-color
jw013

@ jw03 उन विकल्पों में से किसी ने भी इसे ठीक करने के लिए काम नहीं किया। समान व्यवहार। समान व्यवहार अगर मैं टर्मिनेटर के अंदर tmux चलाऊं
थॉमस ब्राउन ने

1
Tmux के अंदर एक शेल में, का मान क्या है $TERM? यदि यह नहीं है screen-256color, के vimरूप में लॉन्च करने का TERM=screen-256color vimप्रयास करें, तो सुनिश्चित करें कि कोई स्टार्टअप स्क्रिप्ट सेट नहीं है TERM(या, यदि आपको बग्गी सॉफ़्टवेयर के आसपास काम करने की आवश्यकता है, तो सुनिश्चित करें कि यह पहले मूल मूल्य की जांच करता है)।
Ry-

@ मिनिटेक: बिंगो। मेरे पास xterm-256color था जबकि स्क्रीन-256color समस्या को हल करता है। यदि आप इसका उत्तर देते हैं तो मैं इसे स्वीकार करूंगा।
थॉमस ब्राउन

इसने मेरे लिए काम किया: stackoverflow.com/a/15095377/96855
ओलिवियर लालोंडे

जवाबों:


5

यह तब होता है जब विम के वातावरण में TERMसही करने के लिए सेट नहीं किया जाता screen[-256color]है, आमतौर पर कुछ शेल स्टार्टअप स्क्रिप्ट द्वारा। अगर ऐसा है - उदाहरण के लिए, आपके पास ए

TERM=xterm-256color

, या तो इसे हटा दें या सुनिश्चित करें कि इसे TERMबदलने से पहले यह मूल मूल्य की जांच करता है, जैसे

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


2

देर से टिप्पणी, लेकिन मैंने सभी थ्रेड्स के माध्यम से देखा था और इसे हल नहीं कर सका जब तक कि मैंने निम्नलिखित नहीं किया। मुझे बस इतना करना था कि दूसरे चेक को जोड़ना था

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

मेरी .bashrcफाइल में पहले सशर्त विवरण के अलावा :

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

मैं भी इसमें था .tmux.conf:

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

मेरी .vimrcफ़ाइल में:

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