เป็นกลุ่มใน tmux แสดงสีที่ไม่ถูกต้อง


57

ฉันติดตั้ง Ubuntu 11.10 จากนั้นดาวน์โหลดชุดรูปแบบ Solarized สำหรับ Gnome Terminal จาก terminal ของฉัน vim ดูดี: ปลั๊กอิน vim-powerline แสดงอย่างถูกต้องและไวยากรณ์ถูกเน้นด้วยสีที่เหมาะสม แต่เมื่อฉันเรียกใช้ tmux และมีการเรียกใช้ vim - การเน้นไวยากรณ์ใช้สีพื้นฐานเดียวเท่านั้นและ vim-powerline ไม่แสดงสีใด ๆ ฉันดูคำถามที่พบบ่อยเกี่ยวกับ vim-powerline และวิธีแก้ปัญหาควรเป็นบรรทัดนี้ใน. 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

ไม่มีความคิดว่าทำไมคุณถึงไม่มี upvotes ไม่แม้แต่จะมาจากคนที่ต้องได้รับประโยชน์จากการได้ upvotes จากคำตอบของพวกเขาเอง +1 จากฉัน คำถามคือเสียงและมันช่วยให้ฉันแก้ปัญหาของตัวเองด้วยการค้นหา
0xC0000022L

คำตอบ:


54

การเริ่มต้น tmux ด้วยแฟล็กต่อไปนี้จะแก้ไขสิ่งนี้ให้ฉัน:

tmux -2

จากหน้า tmux:

-2 บังคับให้ tmux สมมติว่าเครื่องรองรับ 256 สี


1
คำใบ้ที่ดี เมื่อหน้าจอรุ่น Cygwin เริ่มเกิดความผิดพลาดฉันเปลี่ยนกลับเป็น tmux อีกครั้งอย่างรวดเร็ว รักมัน
grantbow

1
FYI - นี่เป็นสิ่งเดียวที่ทำงานกับฉันด้วย tmux 2.3 และ powerline ล่าสุด สีในแถบสถานะเป็นกลุ่มและ tmux นั้นแปลกจริง ๆ
Plasty Grove

28

ฉันมีปัญหาเดียวกันกับ Ubuntu 10.04 LTS โดยใช้ Byobu 5.17 และ tmux 1.5 โดยใช้ Solarized ล่าสุดจาก GitHub repo

ฉันสามารถแก้ไขบางส่วนได้โดยระบุ$TERMใน.bashrcไฟล์:

export TERM="xterm-256color"

ดูเหมือนว่ายังมีข้อผิดพลาดที่ยื่นบน launchpad แต่ยังไม่ได้รับการแก้ไข: byobu ไม่แสดง dircolors อย่างถูกต้อง


2
นี่เป็นสิ่งเดียวที่ใช้ได้สำหรับฉัน!
Tranquille

ทำงานบนUbuntu 14.04ด้วยtmux 2.0
dukedave

นี่เป็นวิธีแก้ปัญหาสำหรับ OS X เช่นกันฮ่า ๆ
Jay

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-generic FYI
fstang

1
มันใช้งานได้สำหรับฉันโดยไม่ต้องมีการตั้งค่า. vimrc เพียง. tmux.conf
Geison Santos

การตั้งค่า. tmux.conf ทำให้ฉันไม่ได้!
hesselbom

4

ประเภทเทอร์มินัลควรตั้งค่าเป็น screen-256color ใน ~ / .tmux.conf มันบอก tmux ว่าควรตั้งค่าตัวแปร evironment TERM อย่างไรจึงจะไม่ทำงานสำหรับเซสชันปัจจุบัน - เริ่มการทดสอบใหม่และทดสอบใหม่

หากยังใช้งานไม่ได้คุณสามารถใช้ Vim โดยใช้:

TERM=screen-256color vi

สิ่งนี้ตั้งค่าตัวแปรสภาพแวดล้อมสำหรับการเรียกใช้งานแบบครั้งเดียวเท่านั้น

ถ้านั่นไม่ได้ทำให้ vim แสดงสีทั้งหมดให้ทดสอบว่าเทอร์มินัลของคุณ (ฉันไม่แน่ใจว่าคุณกำลังทดสอบด้วยเทอร์มินัลอีมูเลเตอร์เดียว) ถูกคอมไพล์เพื่อรองรับจานสี 256 สี - ดาวน์โหลดและเรียกใช้สคริปต์ Perl ด้านล่างจาก เทอร์มินัลอีมูเลเตอร์ที่มีปัญหา

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

PS ฉันคิดว่าคุณได้แก้ไขคำผิดที่สังเกตได้แล้ว


2

ตามที่อธิบายโดย Marcin Kaminski ถ้าTERM=screen-256color vim <filename> เหมาะกับคุณแล้วเพียงเพิ่มสิ่งต่อไปนี้ลงในของคุณ.bashrc

TERM=screen-256color

และติดตามคุณใน.tmux.conf:

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

ฉันมีปัญหาเดียวกันมันเหมาะกับฉัน


นี่เป็นสิ่งเดียวที่ทำงานได้สำหรับฉัน (tmux 1.8)
Yamaneko

อันที่จริงผมเพิ่งผ่านการทดสอบและมีเพียงการเปลี่ยนแปลงTERM=screen-256colorก็เพียงพอแล้วสำหรับฉันเป็นอิสระจากการตั้งค่า tmux ไปหรือscreen-256color xterm-256colorขอขอบคุณ!
Yamaneko

1

.vimrcมีการพิมพ์ผิดในบรรทัดสุดท้ายของการเป็นคุณ

มันควรจะเป็น colorscheme solarized

ไม่แน่ใจว่าจะช่วย :)


0

คุณอาจจะมีปัญหาเดียวกันในเอกสารนี้คำตอบ

โดยทั่วไปการตั้งค่า. tmux.conf ทำงานและTERMถูกตั้งค่าเป็นscreen-256colorแต่จากนั้น tmux จะเปิดทุบตีและเรียก. bashrc ของคุณซึ่งตั้งค่าTERMเป็นอย่างอื่น (อาจxterm-256color)

วิธีแก้ปัญหาคือตั้งค่าTERMในการตั้งค่าเทอร์มินัลของคุณแทนที่จะเป็น หากที่ไม่เป็นตัวเลือกที่คุณสามารถตรวจสอบTERMภายใน .bashrc screen-256colorและไม่เปลี่ยนมันถ้ามันมีอยู่แล้ว


0

ใน tmux เปลือกเริ่มต้นตรวจสอบว่า$TERMเป็นอย่างใดอย่างหนึ่งหรือxterm-256color screen-256colorดูวิธีเปลี่ยน $ TERM :

  • โดยปกติแล้วการเปลี่ยนแปลง~/.Xresourcesเป็นวิธีที่ดีที่สุด (หากรองรับ)
  • สำหรับgnome-terminalโปรดดูที่https://askubuntu.com/a/379472

เป็นอีกทางเลือกหนึ่งตามที่Holy Mackerelกล่าวคุณสามารถบังคับ tmux ให้ 256color ผ่าน:

$ tmux -2

0

[Solucion] [1] ที่อาจรบกวนการมองเห็นของคุณและทำให้ Vim ไม่พึงประสงค์ที่จะใช้เป็นระยะเวลานาน

คุณสามารถแก้ไขปัญหานี้ได้โดยการเรียกใช้: set term = screen-256color ใน Vim หรือเรียกใช้ Vim ภายใต้สภาพแวดล้อม TERM = screen-256color ตามที่ผู้เชี่ยวชาญแนะนำ: http://sunaku.github.io/vim-256color-bce.html


2
[Solucion] [1] หมายถึงอะไร คุณพยายามอ้างอิงหรือลิงค์ไปยังคำตอบอื่นหรือไม่? คำตอบไม่ปรากฏในลำดับเดียวกันเสมอไป ฉันขอแนะนำให้ขยายสิ่งนี้เพื่อชี้แจงสิ่งที่คุณกำลังพูดว่าอาจ "รบกวนการมองเห็นของคุณและทำให้กลุ่มที่ไม่พึงประสงค์ใช้เป็นระยะเวลานาน"
Eliah Kagan

0

ใน. bashrc หรือ. zshrc ของคุณเพียงแค่เพิ่ม

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

และเริ่มต้นด้วย tmux -2


0

สำหรับผู้ที่ใช้เวลากับสีและถ้าโซลาร์เซลล์ที่ใช้โซลาร์ไม่ทำงานบน tmux หรือเบื่อที่จะหาสีสันของ vim มันน่าจะใช้งานได้ในนาทีเดียวมันก็มาจากที่เก็บอย่างเป็นทางการดังนี้

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

สิ่งนี้จะแก้ไขด้วยชุดสีที่สวยงามและรูปแบบที่เน้นและมีประโยชน์ดังนั้นหากคุณพยายามตั้งค่าไฮไลต์เหล่านั้นให้ค้นหาคำศัพท์นี่คือมัน ทุกอย่างได้ตั้งค่าให้ใช้แล้ว คุณสามารถเปลี่ยนสีได้ในไฟล์กำหนดค่า

หากคุณไม่ต้องการที่จะติดตั้งอะไร แต่เป็นเพียงวิธีแก้ปัญหาอย่างง่ายไม่สนใจด้านบนและลองสิ่งนี้ในกลุ่ม

:colo ron คุณยังสามารถแทนที่ '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

ใครก็ตามที่ให้ข้อเสนอแนะเชิงลบ ให้ฉันได้ยินเหตุผลที่ถูกต้อง
Seandex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.