सवाल Tmux में vim पृष्ठभूमि के लिए 256 रंग समर्थन


टीएमयूक्स के भीतर विम का उपयोग करते समय मैं देख सकता हूं कि 256 रंग समर्थन सक्षम है। $ tput रंगों के साथ

हालांकि vm में colorcheme को बदलते हुए, जबकि tmux में रंग रेखा को प्रति पंक्ति आधार पर बदल देगा लेकिन पूरी पृष्ठभूमि नहीं। स्क्रीनशॉट देखें enter image description here

उदाहरण के लिए मेरी .vimrc फ़ाइल का स्निपेट यहां दिया गया है। मेरा मूल रंगीन रंग अंधेरा हो गया है और फिर दौड़ने के बाद: रंगीन मिलोकाई आप देखते हैं कि क्या होता है।

जानकारी

  • GNOME टर्मिनल
  • दे घुमा के

मेरे ~ / .tmux.conf में

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

मेरे ~ / .vimrc में

    set t_Co=256

मेरे ~ / .bashrc में

# ryan
export TERM="xterm-256color"
# ryan
alias tmux="tmux -2"

मेरे ~ / .profile में

# ryan 256 color support
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
    export TERM='xterm-256color'
  else
    export TERM='xterm-color'
  fi

कोई विचार है कि मैं vim में एक पूर्ण colorcheme परिवर्तन कैसे प्राप्त कर सकते हैं? क्या फाइलों से मेरे सभी स्निपेट अच्छे दिख रहे हैं?


96
2018-03-10 21:56


मूल


यदि आप सामान्य मोड में नियंत्रण-एल दबाते हैं, या ": redraw" कमांड निष्पादित करते हैं तो क्या होता है? - Heptite
@ हेप्टाइट कुछ भी नहीं होता है फिर भी रंग परिवर्तन स्क्रीनशॉट की तरह प्रति पंक्ति है - winchendonsprings


जवाब:


आपके .bashrc और .profile के रूप में, tmux के अंदर के गोले आपके tmux conf में 'डिफ़ॉल्ट-टर्मिनल' सेटिंग ओवरराइड कर रहे हैं। कुछ इस तरह:

  • tmux के साथ नया खोल बनाता है TERM=screen-256color
  • .bashrc / .profile रन, सेट TERM=xterm-256color
  • vim रन, tmux के लिए गलत TERM का उपयोग करने का प्रयास करता है

आप इसे चलाकर देख सकते हैं

echo $TERM

एक ताजा tmux खोल में।

टर्मिनल सेट सही तरीके से करने के बारे में टीएमयूक्स अपेक्षाकृत picky है। यदि आप कर सकते हैं, तो टर्म मान को gnome-terminal में कॉन्फ़िगरेशन में सेट करें, न कि आपके .bashrc में। विफल होने पर, उन सेटिंग्स को "स्क्रीन" या "स्क्रीन -256 रंग" TERM के चेक के साथ घेरे, और उस स्थिति में उन्हें रीसेट न करें।

Tmux वास्तव में टर्मिनल सेट चाहता है screen या screen-256color


74
2018-03-10 23:57



ठीक है आप इसे ठीक कर दिया। मैंने बस अपनी .bashrc और मेरी .profile फ़ाइलों में कुछ भी टिप्पणी की जो रंग को 256 पर सेट करने के साथ करना पड़ा। उचित पृष्ठभूमि के साथ tmux और vim काम को पुनरारंभ किया गया और 256 रंग सक्षम। क्या आप मुझे बता सकते हैं कि gnome-terminal config फ़ाइल कहां है? साथ ही जब आप कहते हैं कि tmux टर्मिनल को 'scfeen-256color' पर सेट करना चाहता है, तो क्या आपका मतलब है कि मेरे पास यह tmux.conf में है? धन्यवाद - winchendonsprings
मेरे पास gnome-terminal के साथ एक मशीन नहीं है, जिस पर जांच करने के लिए आसान है, लेकिन सेटिंग जीयूआई में कहीं भी होनी चाहिए, शायद 'प्रोफाइल सेटिंग्स' या उसके जैसा कुछ। - bloy
इसके अलावा, हां, tmux अपने स्वयं के सामान को खोलने वाले गोले में करने दें। छुट्टी set -g default-terminal "screen-256color" आपके tmux conf में लाइन। - bloy
उपर्युक्त सभी मैं बाद में था (सुनिश्चित कर रहा हूं कि टीईआरएम सही ढंग से सेट है और tmux में ओवरराइड नहीं किया गया है), और फिर मुझे tmux को लोड करने के लिए 'tmux -2' का उपयोग करना पड़ा। - phantomwhale
प्रयत्न if [[ $TERM == xterm ]]; then TERM=xterm-256color; fi, यह मेरे लिए काम किया। - asymmetric


जैसा कि यहां बताया गया हैअक्षम करें पृष्ठभूमि रंग मिटा दें (बीसीई) को साफ़ करके t_ut टर्मिनल विकल्प (रन :set t_ut= विम में और फिर दबाएं नियंत्रण+एल टर्मिनल के प्रदर्शन को रीफ्रेश करने के लिए) ताकि जब टीएमयूक्स और जीएनयू स्क्रीन के अंदर विम का उपयोग किया जाता है तो रंग योजनाएं ठीक से काम करती हैं।


59
2018-03-07 18:46



यह एकमात्र चीज है जो अंत में मेरे लिए काम करती है! - Oz123
मैं जोड़ना समाप्त हो गया set t_ut= मेरे vimrc को मैन्युअल रूप से कमांड का उपयोग करने की आवश्यकता को हटा देता है और बीसीई अक्षम होने के साथ सत्र शुरू होने के बाद <kbd> नियंत्रण </ kbd> + <kbd> एल </ kbd> का उपयोग करने की आवश्यकता नहीं होती है। - erran
पुटी का उपयोग करते समय यह आवश्यक है। जब रंगीन रंग की पृष्ठभूमि होती है तो सभी टीईआरएम संयोजन कम हो जाते हैं। धागे के लिए बढ़िया जोड़ा। - botimer
यह काम करता है, हालांकि जब यह समाधान लागू होता है तो माउस के साथ प्रतिलिपि बनाना और पेस्ट करना भी रिक्त स्थान की रेखाओं की प्रतिलिपि बनाता है और चिपकाता है (यदि वे हाइलाइट किए जाते हैं।) - horse hair


मुझे एक बेहतर तरीका मिला है ये पद। आप tmux का उपनाम बना सकते हैं tmux -2 जो टीएमयूक्स को यह मानने के लिए मजबूर करेगा कि खोल 256 रंग टर्मिनल का उपयोग कर रहा है।


17
2018-05-25 12:52





#Ubuntu और #Mac में मेरे लिए यह काम किया गया है:

# File: ~/.bashrc (Ubuntu), ~/.bash_profile (Mac)
# for VIM and TMUC
if [ "$TERM" = "xterm" ]; then
  export TERM=xterm-256color
fi
alias tmux='tmux -2'  # for 256color
alias tmux='tmux -u'  # to get rid of unicode rendering problem

सेटिंग्स पुनः लोड करें:

$ स्रोत ~ / .bashrc # उबंटू

$ स्रोत ~ / .bash_profile # मैक

मैक के लिए .bashrc सेट करें (क्योंकि यह tmux द्वारा उपयोग किया जाता है)

# File: ~/.bashrc (Mac)
source ~/.bash_profile

~ / .Tmux.conf में "डिफ़ॉल्ट-टर्मिनल" विकल्प सेट अप करें।

# File: ~/.tmux.conf
set -g default-terminal "screen-256color"  # Mac and Ubuntu

2
2018-01-03 06:59





एक त्वरित फिक्स टर्मिनल में निम्नलिखित चलाने के लिए है।

export TERM=xterm-color

आप इसे अपने आप जोड़ सकते हैं ~/.bash_profile या शुरू करने के लिए हमेशा सेट करने के लिए अन्य प्रोफ़ाइल।


1
2018-02-27 17:15



धन्यवाद! यह सब मुझे जोड़ने के लिए जरूरी था .zshrc वास्तव में दिखाई देने के लिए दृश्य मोड प्राप्त करने के लिए। - danmcardle


मुझे gnome-terminal + tmux + vim के लिए बहुत ही समान समस्या थी, लेकिन इसे विशिष्ट कुंजी संयोजन समस्या तक भी बढ़ाया गया था:। मुझे कुछ चीजों को एक साथ जोड़ना पड़ा। सबसे पहले मुझे अपने .tmux.conf को सेटअप करना पड़ा:

# Ensure terminal starts with its own colour scheme (helps Vim/Neovim themes to not break)
set -g default-terminal "xterm-256color"
# set -g default-terminal "screen-256color" # no S-Fx keys ;-(
# and ensure the key-codes are xterm alike
set -g xterm-keys on

फिर .vimrc में:

if $COLORTERM == 'gnome-terminal'
      set t_Co=256
endif
set t_ut=

और उसने चाबियाँ और पृष्ठभूमि के लिए काम किया।


1
2017-08-01 10:37





अभी एक ही समस्या का सामना करना पड़ा। पर आधारित bloyमेरे ~ / .profile का उत्तर और वर्तमान सामग्री (वास्तव में, यह वही है winchendonsprings') मैंने अपनी समस्या को निम्नानुसार हल किया है:

~/.profile:

if [[ -z $TMUX ]]; then
    if [ -e /usr/share/terminfo/x/xterm+256color ]; then # may be xterm-256 depending on your distro
        export TERM='xterm-256color'
    else
        export TERM='xterm'
    fi
else
    if [ -e /usr/share/terminfo/s/screen-256color ]; then
        export TERM='screen-256color'
    else
        export TERM='screen'
    fi
fi

तर्क सरल है: अगर हम tmux सत्र के अंदर नहीं हैं, तो xterm (रंगीन या नहीं) का उपयोग करें। अन्यथा स्क्रीन के लिए एक ही बात है।

शायद यह भी verbose है, लेकिन आप विचार मिला।


0
2017-11-27 09:37