Como obter o VIM para exibir 256 cores corretamente

17

Estou tentando obter 256 arquivos de tema de cores para trabalhar com o VIM no xterm.

Isso é peaksea como fica:

Comodeveser:

Eu tentei seguir as dicas na página da wiki sem sucesso.

set t_Co=256 funciona bem, mas

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

resulta nas sequências de escape exibidas no terminal:

EDIT: Mikel estava certo, eu precisava digitar Ctrl + v + Esc para inserir o ^ [corretamente. No entanto, isso não resolveu meu problema.

Então,queoutrasmudançaspossofazerparaqueissofuncione?

Informaçõesadicionais

$uname-aLinuxxxxxxxx3.4.7-1-ARCH#1SMPPREEMPTSunJul2922:02:56CEST2012x86_64GNU/Linux

-

$xterm-versionXTerm(281)

-

$vim--versionVIM-ViIMproved7.3(2010Aug15,compiledJul13201205:24:27)Includedpatches:1-600CompiledbyArchLinuxBigversionwithGTK2GUI.Featuresincluded(+)ornot(-):+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_savesystemvimrcfile:"/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: Tentativa de soluções

Eu já instalei o rxvt-unicode e estava usando isso anteriormente. No entanto, tive o mesmo problema. Aqui está uma comparação lado a lado dos dois. À esquerda está o xterm e à direita está o urxvt. O arquivo aberto é o .Xdefaults que mostra as configurações do urxvt, uma das quais pode ser o problema?

Tambémexecuteio script de teste de cores com resultados aparentemente positivos. O topo é o fundo do xterm é o urxvt.

$echo$TERMxterm-256color

Soluçãodesoluçãoalternativa

Agoraestouusandoo CSAprox e ele parece funcionar bem o suficiente. O que eu ainda estou confuso é por que o tema não funciona mesmo que tenha as configurações de cor do console apropriadas definidas. Talvez tenha algo a ver com a maneira como o vim se considera. Ele foi instalado como parte do pacote gvim, portanto pode estar ignorando as configurações do cterm.

EDIT: E agora tudo parece estar bem ..

Estranhamente depois de instalar o CSApprox e depois removê-lo, tudo parece funcionar como deveria. Acabei de baixar outro esquema de cores e ele carregou perfeitamente mesmo sem o módulo CSApprox em execução.

    
por jmathew 09.08.2012 / 22:21

3 respostas

3

Caleb está certo em seu comentário. O xterm é bastante antigo e você deve considerar mudar para o urxvt - pelo menos a versão habilitada para 256 e utf-8, consulte seu gerenciador de pacotes para instalar o gerenciador correto.

Eu tenho uma configuração idêntica à sua - incrível WM, vim, urxvt, tmux / screen - e todas elas funcionam bem com 256 cores e utf-8. Eu configurei TERM para xterm-256color caso você precise definir isso manualmente.

Hum ... Após a sua edição, você pode verificar se o tema da cor vim está definido corretamente para os terminais?

    
por 10.08.2012 / 09:36
1

Não é só que o seu terminal deve suportar 256 cores, o tema no vim irá se referir às cores no seu .Xdefaults / .Xresources. Para corrigir isso, você deve usar as mesmas cores do autor do tema ou usar o gvim.

Espreitando o código, vejo que ele suporta o gvim corretamente, é por isso que usar o CSAprox funciona, já que ele usa os códigos de cores gvim no HEX (por exemplo: # 123ABC) e os traduz para as cores do seu terminal.

Exemplo

O Vim no modo de console tirará as cores de:

hi Normal ctermfg=16 ctermbg=254

no modo gráfico:

hi Normal guifg=#d0d0d0 guibg=#202020

Então, se você instalou algum tipo de "tema" para suas cores de terminal, isso afetaria as cores que você obtém no Vim. Além disso, verifique que você tem

set background=dark

no seu .vimrc

    
por 13.08.2012 / 10:30
0

tente colocar:

export TERM=xterm-256color

no seu bashrc.

Isso deve resolver isso ...

    
por 07.10.2012 / 04:00