Colorscheme'in arka planı terminalde doğru değil


13

Solarize edilmiş renkler ve paleti ithal ettim. Terminalim doğru renklere ve arka plana sahip, gvim doğru renklere ve arka plana sahip, ancak vim yanlış renkli bir arka plana sahip. Metnin hepsi doğru, ancak arka plan saf siyah gibi görünüyor.

Bu Terminal, GVim ve Vim'in bir karşılaştırmasıdır

İşte benim .vimrc:

syntax enable

if has('gui_running')
    set background=dark
else
    set background=dark
endif

:set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized

Birisi buna neyin sebep olabileceğine dair herhangi bir öneri varsa, çok mecbur olurum. Ben xubuntu varsayılan terminal ile çalıştırın.

Ayrıca ışık seçeneğinin Vim için çok sarı bir arka planla sonuçlandığını da belirtmeliyim.


1
"[M] y terminali doğru renklere ve arka plana sahip" diyerek , terminaldeki Vim ile ilgili özel tavsiyelere uyduğunuzu mu söylemek istersiniz ?
Andrew

2
Tavsiyeyi takip ettim @Andrew. Yine de teşekkürler.
Oberdiear

Danışma Andrew bağlantıları @Oberdiear için size terminali kullanmaya solarized renkleri ayarlamak ve gerektiği açıklıyor değil kullanmak g:solarized_termcolors=256seçeneği. Terminalinizde solarize edilmiş renkleri kullanmaktan memnunsanız, bu yöntem çok daha iyi çalışır. Sorunuzun metni ima var Terminal solarized renkleri kullanımı çok bu durumda, (Ne işe yaradığını gibi bana görünmüyor gösterilecek ekran görüntüsü olsa da), neden kullanıyorsunuz kurmak g:solarized_termcolors=256ayarı?
Zengin

Hangi terminali kullanıyorsunuz? Ben bu senaryoyu için gnome-terminal.
wchargin

@Rich, sanırım paletin doğru şekilde ayarlanmadığını. Siz (veya bir başkası) Xfce Terminali için bunu nasıl doğru ayarlayacağınızı biliyor musunuz?
Oberdiear

Yanıtlar:


10

Bunun olabileceğini düşünmemizin iki nedeni var:

  1. Kullandığınız güneş enerjili renk şeması beyan etmiyor ctermfgve ctermbgvurgulamak istediğiniz özelliklerden herhangi biri için. Bu renk şemasını deneyin , hem terminalinizde hem de gvim'inizde aynı görünmelidir, eğer durum buysa ctermfgve ve ctermbg.

  2. Terminal öykünücünüzün görüntülemeye çalıştığınız renkleri desteklediğinden emin olmanız gerekebilir:


Bunların her ikisinin de aynı anda olabileceğini unutmayın, ancak sisteminiz hakkında daha fazla bilgi olmadan bunu teşhis etmek zor.


Desert256 iyi çalışıyor, ama ben büyük bir hayran değilim. TERMDeğişkenin yanlış olduğuna inanıyorum , ancak nasıl değiştirileceğine dair hiçbir fikrim yok.
Oberdiear

2
Ncurses terimini kurdum. Daha sonra komutu çalıştırdım. Çalıştırdıktan sonra, tüm metin gri olur ve arka plan siyahtır.
Oberdiear

1
Olmalı export TERM=xterm+256color, DEĞİL "renk s " (çoğul). Ayrıca, bunun olması gerektiğine inanıyorum xterm-256color, DEĞİL "** + ** 256 renk; ama özellikle solarize ile kullanma konusunda yanlış olabilirim. Bu cevaba göre ,# Entries with embedded plus signs are designed to be included through use/tc capabilities, not used as standalone entries.
Edward

export TERM=xterm+256colorOSX üzerinde olsunzle-line-finish:echoti:1: no such terminfo capability: rmkx
Xeoncross

Ben tam olarak bu sorunu vardı ve export TERM=xterm+256colorsvim solarized tespit ve terminal arka plan olarak tam olarak arka plan rengini kullanmak yardımcı oldu.
Shyam Habarakada

5

Harika haberler, herkes. @Tom ve @Rich beni doğru yola koydu. Burada sağlanan bir çözüm buldum . .Vimrc'mi basit ayarladım

syntax enable
set background=dark
set t_Co=16
colorscheme solarized

Bu her şeyi düzeltiyor gibi görünüyor. Yazı tipi örneklerinde renkler o kadar parlak görünmüyor , ama bu sadece ben olabilirim. Solarized renk şemasını kullanmak isteyen ve xfce4-terminalini kullanan herkese, sadece terminalrc ve .vimrc'yi değiştirmek ana problemlerimi çözüyordu. Yardımınız için herkese teşekkürler!


1
set t_CoVimrc'nizdeki satıra ihtiyacınız yok : Vim bu değeri terminalden okuyabilir (Ayar 't_Co'bir Vim kargo kültü gibi görünüyor: Çevrimiçi olarak birçok kişi çözmeye çalıştıkları sorunları gerçekten anlamadan bunu yapmanızı öneriyor .)
Zengin

Sadece "ekran" ve "tmux" diyeceğim - bu araçlar $ TERM değişkenini değiştirir, böylece vim ihtiyaç duyduğu bilgileri okuyamaz.
NieDzejkob

@NieDzejkob Bir terminal çoklayıcı kullanabilir ve yine de doğru yapılandırılmış bir terminale sahip olabilirsiniz.
Zengin

@ Terminal tarafındaki doğru düzeltmenin ne olduğunu açıklamak ister misiniz? Ben tmux ile kullanıyorum $TERM=screenve ayar t_Co=16gerçekten benim için görsel sorunları düzeltiyor , ama öncelikle ilişkinin ne olduğunu bilmek istiyorum.
ffledgling

@ffledgling isterdim. Yine de biraz ileri geri gerekebilir, bu yüzden gel ve sohbete katıl .
Zengin

4

Sanırım bu colorschemeterminal ile uyumluluk sorunu . Eklenti csaproxmucizevi bir şekilde bu sorunların bir kısmını çözer.

Özet:

Terminal Vim için renk kimyasalları bulmak zor. Çoğu colorchemes sadece GVim'i desteklemek için yazılmıştır ve terminal Vim'de hiç çalışmaz.

Bu eklenti, GVim-only colorschemes'i, terminal 88 veya 256 rengi desteklediği sürece terminal Vim'de Just Work yapar - ve çoğu bugün yapıyor. Bu genellikle kullanıcı etkileşimi gerektirmez (ancak işler Sadece Çalışmıyorsa ne yapılacağı konusunda yardıma bakın). Bu eklentiyi mutlu bir şekilde yükledikten sonra, her kullandığınızda :colorschemesihrini yapacak ve sadece `` Colorscheme '' Just Work'ü yapacak.

Eklentiye bağlantılar:


1
Bu kullanışlı bir eklentidir, ancak burada yardımcı olmayacaktır, çünkü solarize edilmiş renk şeması, hem 16 renkli hem de 256 renkli terminaller altında terminal Vim'de çalışmak için önemli ölçüde çaba sarf ediyor.
Zengin

4

Solarize edilmiş terminal-Vim renk düzeni iki farklı yoldan biriyle çalışabilir.

  1. 16 renk modu: Solarized yalnızca 16 renk içerir, bu nedenle bu modda terminalinizi solarize edilmiş renkleri 16 renk olarak kullanacak şekilde ayarlarsınız ve Vim colorscheme bunları kullanır. Yani, örneğin, Vim colorscheme "1" terminal rengini talep eder ve terminal bunu onaltılık # dc322f olarak görüntüler.

  2. 256 renk paletinden 16 rengi için en yakın eşleşmeyi seçtiği 256 renk modu.

Eski yöntem yazar (ve benim tarafımdan) tarafından şiddetle tavsiye edilir ve "terminalinizin doğru renklere ve arka plana sahip olduğunu" belirttiğiniz için bu yöntemi kullanmaktan mutluluk duyarsınız.

Ancak, bilgilerin terminal olmadığını da ekran görüntüsünden görünür değil doğru renkler belirledik. (Beyaz, solarize sette bir renk değildir ve göz yummadığım halde ekran görüntüsünün diğer metin rengi de Solarized "Violet" (# 6c71c4) gibi görünmüyor.)

Çizgiler ayarını t_Cove g:solarized_termcolorsvimrc * cihazınızdan kaldırır ve terminal renklerinizi doğru şekilde yapılandırırsanız, 16 renkli solarize renk şemasının çalışmaya başlayacağını bulmalısınız.

* Bu çizgiler (daha az sadık) 256 renk modunu kullanarak solarize olur. Bunun günümüze ayrıca çalışma, (ı şüpheli @Jubal o M.Ö. düşündüren doğrudur sorun buradadır ), ancak açıkça sürece 16-renk modu tercih edilir yoktur terminal içinde solarized kullanmak istiyorum.


Tamamen doğru yolda olduğunuzu düşünüyorum. Bence paletin doğru şekilde takılmadığını düşünüyorum. Süreç boyunca bana yürür müsün? Yardımın için minnettarım @Rich.
Oberdiear

1
Görünüşe göre ilk bağlantınız öldü.
akozi

@azoki Bana haber verdiğiniz için teşekkürler. Görünüşe göre Solarized sitesi yeniden yapım aşamasında. Şu an için bağlantıyı github repo'yu gösterecek şekilde değiştirdim.
Zengin

3

Cevabınızı bulduğunuz anlaşılıyor. Aynı sorunu yaşadım ve yukarıdaki hiçbir şey işe yaramadı. Ne benim için çalıştı kullanıyordum tartışma enterminalrc aksine, sgerrand en .

Benim konuyla ilgili vimrcbasitçe:

syntax enable
set background=dark
colorscheme solarized

Umarım birine yardım eder!


1

Bu benim için işe yarıyor (eskiden kullandığım tüm terminallerde - xterm, konsole, gnome-terminal, iterm2, roxterm - hem Linux hem de OS X'te, ayrıca gvim ve macvim ile):

" no other configuration than this needed for solarized
colorscheme solarized
highlight SpecialKey ctermfg=11 ctermbg=8

if &term =~ '256color'
  " Disable Background Color Erase (BCE) so that color schemes work
  " properly within 256-color terminals
  set t_ut=
endif

Bu, t_Co = 16 ayarında benzer bir soruna neden oldu. Paletle ilgili bir sorunum olduğundan oldukça eminim, ancak henüz çözemedim.
Oberdiear

Hangi terminal emülatörünü kullanıyorsunuz? Doğru hatırlarsam, konsole'nin dahili solarize konfigürasyonu tamamen kullanılabilir değildir ve orijinal solarizedeki depodan ayarları kullanması gerekir…
Jubal

Xfce Terminal kullanıyorum.
Oberdiear

Sanırım işe yaradı: TERMAL'i xterm-256color'a zorlamaya çalışın, solarized ön ayarını terminal tercihlerinden kullanırken, solarized xfce-terminal git deposundan değil. Bu yukarıdaki BCE kesmek ile birlikte benim için xfce4-terminal için hile yaptı.
Jubal

(Altta yatan terminal öykünmesi ve yazı tipi oluşturma ile hala balık gibi bir şey var ve sanırım neden Linux'ta düz eski xterm'e geri döndüğümü hatırlattım…)
Jubal

0

Bu çalışmak için bir acıydı (Linux Mint'te terminal Vim kullanıyorum) ve ne yazık ki yaptığım her şeyin ayrıntılarını yazmadım. İşte benim vimrc ilgili bölümü:

syntax enable
set background=dark
set t_Co=16
colo solarized

GitHub'daki bu projeyi de incelemeye değer olabilir .


set t_Co = 16, renklerin beklenenden radikal olarak farklı olmasına neden olur. Ben de varsayılan Xubuntu terminal Xfce-Terminal kullanıyorum.
Oberdiear

@Oberdiear Eğer t_Co = 16 ayarı renkleri bu şekilde etkiliyorsa (g: solarized_termcolors değişken unset ile), bu terminal renklerinizin solarize kullanmak için doğru şekilde ayarlanmadığı anlamına gelir. Terminal renklerinizi nasıl ayarlıyorsunuz?
Zengin

0

Benim için işe yarayan, ayarlarınızın bu bölümünü kaldırmaktı

if has('gui_running')
   set background=dark
else
   set background=dark
endif

Bir xfce4 terminali çalıştırıyorum


0

Ben de bu sorunu yaşadım xfce-terminal.

Biraz araştırma yaptıktan sonra bu hatayı keşfettim : $TERMXFCE terminalinizde olduğu gibi ayarladığınız her şey sessizce göz ardı edilir.

Bu gerçekten XFCE terminalinin (hala GTK + 2 tabanlı) kullandığı temel (ve bakımsız) eski VTE kütüphanesinin bir hata olduğunu düşünüyorum . Yeni VTE kütüphanesini kullanacak bir GTK + 3 terminaline geçmek sorunu çözdü.

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.