سؤال 256 لون دعم لخلفية vim في tmux


أثناء استخدام vim داخل tmux أستطيع أن أرى تمكين 256 لون الدعم. مع ألوان tput $

لكن تغيير الألوان في vim بينما في tmux سيغير colorcheme على أساس كل سطر ولكن ليس الخلفية بأكملها. انظر قطة enter image description here

هنا مقتطف من ملف .vimrc الخاص بي على سبيل المثال. هو colorcheme بلدي الأصلي هو مظلمة ، ثم بعد تشغيل: colorcheme molokai سترى ما يحدث.

معلومات

  • جنوم الطرفية
  • سحق

في بلدي ~ / .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

أي أفكار كيف يمكنني الحصول على تغيير colorcheme الكامل في vim؟ هل كل مقتطفاتي من الملفات تبدو جيدة؟


96
2018-03-10 21:56


الأصل


ماذا يحدث إذا قمت بالضغط على control-l في الوضع العادي ، أو تنفيذ أمر ": redraw"؟ - Heptite
لا يحدث شيءHeptite لا يزال تغيير اللون في كل سطر كما في الصورة - winchendonsprings


الأجوبة:


من المظهر الخاص بك. bashrc و .profile ، تغلف الأصداف داخل tmux الإعداد 'default-terminal' في tmux conf الخاص بك. شيء من هذا القبيل:

  • tmux يخلق قذيفة جديدة مع TERM=screen-256color
  • .bashrc /. تشغيل الملفات ، تعيين TERM=xterm-256color
  • يدير vim ، يحاول استخدام TERM غير صحيح لـ tmux

يمكنك التحقق من ذلك عن طريق الجري

echo $TERM

في قذيفة tmux الطازجة.

Tmux هو من الصعب إرضاءه نسبيا حول وجود مجموعة طرفية بشكل صحيح. إذا كنت تستطيع ، قم بتعيين قيمة المصطلح في تكوين gnome-terminal ، وليس في .bashrc الخاص بك. أخفق ذلك ، قم بإحاطة هذه الإعدادات بفحص "شاشة" أو "شاشة 256 لون" TERM ، ولا تقم بإعادة تعيينها في هذه الحالة.

Tmux REALLY يريد أن يتم ضبط الجهاز screen أو screen-256color


74
2018-03-10 23:57



حسنا قمت بإصلاحه. أنا ببساطة علقت أي شيء في بلدي. bashrc وملفاتي .profile التي لها علاقة بتعيين اللون إلى 256. يعمل tmux و vim يعمل مع الخلفية المناسبة و 256 لون. هل يمكن أن تخبرني أين يوجد ملف تهيئة gnome-terminal؟ أيضا عندما تقول tmux تريد تعيين محطة ل scfeen-256color ، هل تقصد كما لو كان ذلك في بلدي tmux.conf؟ شكر - winchendonsprings
ليس لدي جهاز مع gnome-terminal على أنه مفيد للتحقق ، ولكن يجب أن يكون الإعداد في مكان ما في واجهة المستخدم الرسومية ، ربما تحت "إعدادات الملف الشخصي" أو شيء من هذا القبيل. - bloy
أيضا ، نعم ، دعونا tmux تفعل ما يخصها إلى قذائف أنها تفرخ. اترك ال set -g default-terminal "screen-256color" خط في كونك tmux. - bloy
كل ما سبق هو ما كنت أقوم به (تأكد من تعيين TERM بشكل صحيح ولم يتم تجاوزه في tmux) ، ثم اضطررت إلى استخدام "tmux -2" لتحميل tmux للأعلى. - phantomwhale
محاولة if [[ $TERM == xterm ]]; then TERM=xterm-256color; fi، عملت معي. - asymmetric


كما هو موضح هنا، تعطيل لون الخلفية محو (قبل الميلاد) عن طريق مسح t_ut الخيار محطة (المدى :set t_ut= في Vim ثم اضغط مراقبة+L لتحديث شاشة المطراف (بحيث تعمل أنظمة الألوان بشكل صحيح عند استخدام Vim داخل شاشة tmux و GNU).


59
2018-03-07 18:46



هذا هو الشيء الوحيد الذي عمل في النهاية بالنسبة لي! - Oz123
انتهى بي الأمر مضيفا set t_ut= إلى vimrc الخاص بي الذي يزيل الحاجة إلى استخدام الأمر يدويًا وليس هناك حاجة لاستخدام <kbd> Control </ kbd> + <kbd> L </ kbd> منذ بدء جلسة العمل مع تعطيل BCE. - erran
هذا أمر ضروري عند استخدام PuTTY. جميع تركيبات TERM تقصر عندما يكون لـ colorscheme خلفية. إضافة كبيرة إلى الموضوع. - botimer
يعمل هذا ، ومع ذلك عند تطبيق هذا الحل على النسخ واللصق باستخدام الماوس ، يقوم أيضًا بنسخ ولف مسافات المسافات المتأخرة (إذا كانت مميزة). - horse hair


لقد وجدت طريقة أفضل على هذا المشنور. يمكنك إنشاء اسم مستعار لـ tmux tmux -2 مما سيجبر tmux على افتراض أن shell يستخدم جهاز 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

إعدادات التحديث:

$ source ~ / .bashrc # Ubuntu

$ source ~ / .bash_profile # Mac

إعداد .bashrc لـ Mac (كما يتم استخدامه من قبل tmux)

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

قم بإعداد الخيار "default-terminal" في ~ / .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 (ملونًا أو لا). خلاف ذلك نفس الشيء على الشاشة.

ربما يكون مطولاً للغاية ، لكنك حصلت على الفكرة.


0
2017-11-27 09:37