VIM'in 256 rengi düzgün görüntülemesi nasıl sağlanır


17

Xterm altında VIM ile çalışmak için 256 renk tema dosyası almaya çalışıyorum.

Bu benim için nasıl görünüyor peaksea :

resim açıklamasını buraya girin

Nasıl görünmeli: nasıl görünmeli

Boşuna wiki sayfasındaki ipuçlarını takip etmeyi denedim.

set t_Co=256 iyi çalışıyor ama

set t_AB=^[[48;5;%dm
set t_AF=^[[38;5;%dm

terminalde görüntülenen kaçış sekansları ile sonuçlanır:

EDIT: Mikel haklıydı, ^ [düzgün girmek için Ctrl + v + Esc yazmam gerekiyordu. Ancak, bu benim sorunumu çözmedi.

resim açıklamasını buraya girin

Peki, bu işi yapmak için başka hangi değişiklikleri deneyebilirim?

ilave bilgi

$ uname -a
Linux xxxxxxx 3.4.7-1-ARCH #1 SMP PREEMPT Sun Jul 29 22:02:56 CEST 2012 x86_64 GNU/Linux

-

$ xterm -version 
XTerm(281)

-

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 13 2012 05:24:27)
Included patches: 1-600
Compiled by ArchLinux
Big version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent 
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff 
+digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi 
+file_in_path +find_in_path +float +folding -footer +fork() +gettext 
-hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall 
+linebreak +lispindent +listcmds +localmap +lua +menu +mksession +modify_fname 
+mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm 
-mouse_sysmouse +mouse_xterm +mouse_urxvt +multi_byte +multi_lang -mzscheme 
+netbeans_intg +path_extra +perl +persistent_undo +postscript +printer -profile
 +python -python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs 
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary 
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo 
+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim 
+xsmp_interact +xterm_clipboard -xterm_save 
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15   -I/usr/local/include  -march=x86-64 -mtune=generic -pipe -fstack-protector --param=ssp-buffer-size=4  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -rdynamic -Wl,-export-dynamic  -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE  -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0   -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -lncurses -lnsl   -lacl -lattr -lgpm -ldl  -L/usr/lib -llua  -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -fstack-protector -L/usr/local/lib  -L/usr/lib/perl5/core_perl/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -L/usr/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic   -lruby -lpthread -lrt -ldl -lcrypt -lm  -L/usr/lib   

-

$ ls -l /usr/share/terminfo/x/xterm-256color 
-rw-r--r-- 1 root root 3336 Feb  8  2012 /usr/share/terminfo/x/xterm-256color

.vimrc

set t_Co=256

.Xdefault

!--------------------- XTERM ------------------------
xterm*dynamicColors:    true
xterm*background:       black
xterm*foreground:        #BBBBBB
xterm*utf8:             2
xterm*eightBitInput:    true
xterm*saveLines:        32767
xterm*scrollTtyKeypress:       true
xterm*scrollTtyOutput:  false
xterm*scrollBar:        false
xterm*loginShell:       true
xterm*faceName:         xft:Dejavu Sans Mono:size=10
xterm*jumpScroll:       true
xterm*multiScroll:      true
xterm*toolBar:          false
xterm*geometry:         100x30

EDIT: Denenmiş çözümler

Zaten rxvt-unicode'u kurdum ve daha önce kullanıyordum. Ancak aynı problemi yaşadım. İşte ikisinin yan yana karşılaştırması. Solda xterm, sağda urxvt. Dosya açık olan urxvt ayarlarını gösteren sorunlardan biri olan .Xdefaults?

xterm sol urxvt sağ

Ayrıca renk testi komut dosyasını görünüşte olumlu çıktı ile çalıştırdım. Üst xterm alt urxvt. üst xterm alt urxvt

$ echo $TERM
xterm-256color

Geçici çözüm

Şimdi CSApprox kullanıyorum ve yeterince iyi çalışıyor gibi görünüyor. Hala kafam karıştı, tema uygun konsol renk ayarlarına sahip olmasına rağmen neden çalışmıyor? Belki de vim'in kendini nasıl gördüğü ile ilgisi vardır. Gvim paketinin bir parçası olarak kuruldu, böylece cterm ayarlarını görmezden gelebilir.

EDIT: Ve şimdi her şey iyi görünüyor ..

Garip bir şekilde CSApprox kurduktan ve kaldırdıktan sonra, her şey gerektiği gibi çalışıyor gibi görünüyor. Sadece başka bir renk şeması indirdi ve CSApprox modülü çalışmadan bile mükemmel yüklendi.


$ TERM'iniz nedir? Vim 256 renk kullanabileceğini biliyor mu?
Richard Hum

1
xterm, UTF8, renkler ve benzerleri ile oldukça problemlidir. Eğer kullanmayı düşündünüz mü urxvtve Kendinizi acele tasarrufu? ( pacman -S rxvt-unicode).
Caleb

1
Nasıl yazdın ^[? Ctrl + V + Esc kullanarak yapmanız gerekir.
Mikel

@Mikel bu konuda haklıydın, ancak bir fark
yaratmamış

@Caleb Ne demek istiyorsun? Aslında daha iyi UTF-8 desteği için rxvt'den xterm'e geçtim ve 256 renk her ikisinde de çalışıyor. TERM=screen-256colorYine de tmux nedeniyle kullanıyorum , ama işler aynı zamanda xterm-256colordış tmux ile de çalışıyor .
jw013

Yanıtlar:


3

Caleb yorumunda haklı. xterm oldukça eskidir ve urxvt'ye geçmeyi düşünmelisiniz - en azından 256 ve utf-8 etkinleştirilmiş sürüm, doğru olanı yüklemek için paket yöneticinize başvurun.

Seninle aynı sete sahibim - harika WM, vim, urxvt, tmux / ekran - ve hepsi 256 renk ve utf-8 ile iyi çalışıyor. Bunu xterm-256colormanuel olarak ayarlamanız gerektiğinde TERM olarak ayarladım.

Hum ... Düzenlemenizden sonra, vim color temasının terminaller için doğru tanımlanıp tanımlanmadığını kontrol edebilir misiniz?


tam olarak ne demek istediğinden emin değilim. peaksea.vim ctermfg / ctermbg kullanır ancak tanımlanmış gui işlevlerine de sahiptir. Bu müdahale edebilir mi?
jmathew

Farklı bir renk şemasıyla deneyebilir misiniz? Bunun büyük bir fark yaratmasını beklemiyorum ama asla bilemezsiniz. Aklıma gelen diğer bir şey de varsayılan olarak 256 renk zorlayarak kaynaktan vim yeniden derlemektir. Belki
kemerdeki

1

Sadece terminalinizin 256 rengi desteklemesi değil, vim'deki tema .Xdefaults / .Xresources'nizdeki renklere atıfta bulunacaktır. Bunu düzeltmek için, temanın yazarı ile aynı renkleri kullanmalı veya bunun yerine gvim kullanmalısınız.

Koduna bakmak, gvim'i düzgün bir şekilde desteklediğini görebiliyorum, bu yüzden CSAprox kullanımı çalışıyor, çünkü HEX'te gvim renk kodlarını alıyor (örneğin: # 123ABC) ve terminal renklerinize çeviriyor, sanırım.

Misal

Konsol kipindeki vim renkleri şunlardan alacaktır:

hi Normal ctermfg=16 ctermbg=254

grafik modundayken:

hi Normal guifg=#d0d0d0 guibg=#202020

Bu nedenle, terminal renkleriniz için bir tür "tema" yüklediyseniz, Vim'de elde ettiğiniz renkleri etkiler. Ayrıca,

set background=dark

.vimrc'nizde


Evet o cterm konsoldayken kullandığı şey. Mesele şu ki, .Xresources dosyam yok. Renklerin hiçbiri yeniden tanımlanmadı. Tahmin edebileceğim tek şey, yazarın varsayılanlardan farklı bir .Xdefaults / .Xresources tanımlı olması. Ancak görünüşe göre, kullandığım her 256 renkli termik tema, nasıl görünmesi gerektiğinden önemli ölçüde farklı. Kaybettiğim renkleri ayarlayan başka bir dosya var mı?
jmathew

Ben X11 hakkında konuşursak, .Xdefaults ve .Xresources sadece dahil dosyaları (Archlinux sistemlerinde eskiden kullanılmış) olduğunu düşünüyorum. Tabii ki, varsayılan terminal renkleri bir yerde yaşamak zorundadır ve çeşitli linux dağılımları göz önüne alındığında farklı olabilir. Ayrıca, Gnome Terminali gibi terminal emülatörlerinin özel renklere sahip olabileceğini veya sistemin özelliklerini kullanabileceğini unutamayız, çünkü temanın yaratıcısının özel renkler kullanıp kullanmadığından emin olamayız. Benim gibi, bir vim teması yapmış olan herhangi bir ucube, kesinlikle terminal renklerini özelleştirdi.
Alex

0

koymayı deneyin:

export TERM=xterm-256color

senin bashrc.

Bunu düzeltmeli ...


2
$ TERM değerinin dışa aktarılması .bashrcnadiren her şeyi "düzeltir"; diğer istenmeyen sorunlara neden olması daha olasıdır ...
jasonwryan
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.