Tmux'taki Vim yanlış renkler gösteriyor


57

Ubuntu 11.10'u yükledim. Sonra Gnome Terminali için Solarized temasını indirdi. Terminalimden vim'im iyi görünüyor: eklenti vim-powerline doğru görüntüleniyor ve sözdizimi uygun renklerle vurgulanıyor. Fakat tmux'u çalıştırdığımda ve vim'i çalıştırdığımda - sözdizimi vurgusu yalnızca bir temel renk kullanıyor ve vim-powerline renk göstermiyor. Vim-powerline'daki SSS bölümüne baktım ve çözüm bu .tmux-config satırında olmalı:

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

Fakat işe yaramıyor. TERM'e baktım ve dönüş 'xterm' oldu, bu yüzden denedim:

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

Ancak bu da yardımcı olmuyor.

Bu .tmux.config dosyasındaki tek çizgidir. .Vimrc'de şu satırları var:

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

Neden hiçbir fikriniz olmadığına dair bir fikrim yok, kendi cevaplarından bir şeyler satın alarak yararlanmış olanlardan bile değil. Benden +1. Soru sağlam ve kendi sorunumu da çözerek çözmeme yardımcı oldu.
0xC0000022L

Yanıtlar:


54

Aşağıdaki bayrakla tmux'u başlatmak benim için bunu düzeltir:

tmux -2

tmux man sayfasından:

-2 Terminalin 256 rengi desteklediğini varsaymak için tmux'u zorlayın.


1
İyi ipucu. Ekranın Cygwin sürümü vim'e çarpmaya başladığında çok hızlı bir şekilde tekrar tmux'a döndüm. Sevdim.
grantbow

1
Bilginize - Bu benim için tmux 2.3 ve en son elektrik hattı ile çalışan tek şeydi. Vim ve tmux durum çubuğundaki renkler çok garipti.
Plasty Grove

28

Aynı sorunu, Ubuntu 10.04 LTS'de Byobu 5.17 ve tmux 1.5 kullanarak GitHub deposundaki en yeni Solarized'i kullanarak yaşıyorum.

Ben kısmen belirterek bunu düzeltmek başardı $TERMiçinde .bashrcdosyanın:

export TERM="xterm-256color"

Ayrıca, fırlatma rampasında dosyalanmış bir hata var gibi görünüyor, ancak henüz çözülmedi: byobu dircolors düzgün görüntülenmiyor


2
Bu benim için çalışan tek şey!
Tranquille

Ayrıca Ubuntu
14.04

Bu OS X ve haha ​​çözümü
Jay

27

bu benim için çalıştı

içinde .tmux.conf

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

içinde .vimrc

set term=screen-256color

.vimrc için eski terim değerini kaldırın, bunun işe yarayacağına inanın


1
Benim için çalışmıyor. tmux 1.8, vim 7.4.1816, ubuntu x86_64 ile çekirdek 3.13.0-92-jenerik. Bilginize.
saat

1
.Vimrc ayarları olmadan benim için çalıştı, sadece .tmux.conf.
Geison Santos

.Tmux.conf ayarı benim için hile yaptı!
hesselbom

4

Terminal tipi ~ / .tmux.conf içinde screen-256color olarak ayarlanmalıdır. Tmux’e TERM ortam değişkenini neyin ayarlayacağını söyler, böylece o anki oturum için işe yaramaz - yeni bir tane başlat ve daha sonra test et.

Hala çalışmıyorsa, Vim'i kullanarak çalıştırabilirsiniz:

TERM=screen-256color vi

Bu, ortam değişkenini yalnızca bir defalık vi uygulaması için ayarlar.

Bu, vim'in tüm renkleri göstermesini sağlamazsa, terminalinizin (yalnızca bir terminal emülatörü ile test edip etmediğinizden emin değilim) test edin, 256 renk paletini desteklemek için derlendi - aşağıdaki Perl komut dosyasını indirin ve çalıştırın. söz konusu terminal emülatörü.

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

PS. Sanırım farkedilen Jordanbrock yazım hatası düzeltildi.


2

Marcin Kaminski tarafından açıklandığı gibi, eğer TERM=screen-256color vim <filename> sizin için çalışıyorsa o zaman sadece aşağıdaki.bashrc

TERM=screen-256color

ve sizden sonra .tmux.conf:

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

Aynı problemi yaşadım, bu benim için işe yarıyor.


Bu benim için çalışan tek kişiydi (tmux 1.8).
Yamaneko

Aslında, sadece test ettim ve TERM=screen-256colortmux'u ayarlamak screen-256colorveya ayarlamaktan bağımsız olarak, sadece benim için yeterliydi xterm-256color. Teşekkür ederim!
Yamaneko

1

Son satırında bir yazım hatası var .vimrc.

Olmalı colorscheme solarized

Bu işe yarar mı emin değilim :)


0

Bu cevapta belgelenen aynı sorunu yaşıyor olabilirsiniz.

Temel olarak, .tmux.conf ayarı çalışır ve TERMayarlanır screen-256color, ancak sonra tmux bash'ı açar ve .bashrc adınızı çağırır, bu TERMda başka bir şeye (belki xterm-256color) ayarlanır .

Çözüm, TERM.bashrc yerine terminal ayarlarınızı belirlemektir . Bu bir seçenek değilse, TERM.bashrc dosyasını kontrol edebilir ve daha önce değiştirmemişseniz değiştirebilirsiniz screen-256color.



0

[Solucion] [1] görüşünüzü bozabilir ve Vim'i uzun süre kullanmaktan rahatsızlık verebilir.

Bunu çalıştırarak düzeltebilirsiniz: Vim'de set term = screen-256color veya bazı uzmanların önerdiği gibi Vim'i TERM = screen-256color ortamı altında yeniden başlatarak düzeltebilirsiniz: http://sunaku.github.io/vim-256color-bce.html


2
[Solucion] [1] ile ne demek istiyorsun? Başka bir cevaba yönlendirmeye mi yoksa bağlantıya mı çalışıyorsunuz? Cevaplar her zaman aynı sırada görünmez. Söylediklerinizi netleştirmek için "vizyonunuzu bozabilecek ve Vim'i uzun süre kullanmaya tatsız hale getirebilecek" ifadesini genişletmenizi öneriyorum.
Eliah Kagan

0

.Bashrc veya .zshrc dosyalarına ekle

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

ve ayrıca tmux -2 ile başlayın


0

Renkler üzerinde zaman harcayanlar ve solarize vim tmux üzerinde çalışmıyorsa veya vim renklerini bulmaktan bıkmışsa, bu bir dakika içinde çalışmalı, aynı zamanda resmi depodan alınmalıdır.

yum install vim-jellybeans

veya

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

Bu güzel renk kümesi ile düzeltecek ve desenleri çok odaklanmış ve yararlı, aynı zamanda bu vurguyu, arama kelimelerini ayarlamaya çalışıyorsanız, budur. her şey zaten kullanmak için ayarlanmış. Yapılandırma dosyasında renkleri bile değiştirebilirsiniz.

Basit bir çözümden başka bir şey kurmak istemiyorsanız, yukarıda görmezden gelin ve bunu vim ile deneyin.

:colo ron Ayrıca 'ron' ifadesini aşağıdaki setlerle değiştirebilir ve hatta geri yükleyebilirsiniz. solo default

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

ve kaydedin.

colo ron
syntax on

Her kim olumsuz geribildirim verdi. geçerli nedeni duymama izin ver.
Seandex
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.