VIM에서 256 색을 올바르게 표시하는 방법


17

xterm에서 VIM과 함께 작동하도록 256 색상 테마 파일을 가져 오려고합니다.

이다 peaksea 나를 위해 모양을 :

여기에 이미지 설명을 입력하십시오

어떻게 보이는지 : 어떻게 보일까

나는 위키 페이지의 팁을 따르려고 노력했다.

set t_Co=256 잘 작동하지만

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

터미널에 이스케이프 시퀀스가 ​​표시됩니다.

편집 : Mikel이 맞았습니다. ^ [를 올바르게 입력하려면 Ctrl + v + Esc를 입력해야했습니다. 그러나 그것은 내 문제를 해결하지 못했습니다.

여기에 이미지 설명을 입력하십시오

이 작업을 수행하기 위해 다른 어떤 변경을 시도 할 수 있습니까?

추가 정보

$ 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

편집 : 시도한 솔루션

이미 rxvt-unicode를 설치했으며 이전에 사용했습니다. 그러나 나는 같은 문제가 있었다. 다음은 두 가지를 나란히 비교 한 것입니다. 왼쪽은 xterm이고 오른쪽은 urxvt입니다. 열린 파일은 .Xdefaults이며 urxvt의 설정 중 하나가 문제 일 수 있습니다.

xterm 왼쪽 urxvt 오른쪽

나는 또한 양의 출력으로 컬러 테스트 스크립트 를 실행했습니다 . 상단은 xterm이며 하단은 urxvt입니다. 상단 xterm 하단 urxvt

$ echo $TERM
xterm-256color

해결 방법 솔루션

지금 CSApprox를 사용 하고 있으며 제대로 작동하는 것 같습니다. 여전히 혼란스러워하는 것은 적절한 콘솔 색상 설정이 정의되어 있어도 테마가 작동하지 않는 이유입니다. 아마도 vim이 생각하는 방식과 관련이있을 것입니다. cterm 설정을 무시할 수 있도록 gvim 패키지의 일부로 설치되었습니다.

편집 : 그리고 지금 모든 것이 괜찮은 것 같습니다 ..

이상하게 CSApprox를 설치 한 후 제거하면 모든 것이 제대로 작동하는 것 같습니다. 방금 다른 색상 구성표를 다운로드했으며 CSApprox 모듈을 실행하지 않아도 완벽하게로드되었습니다.


당신의 $ TERM은 무엇입니까? vim은 256 색을 사용할 수 있다는 것을 알고 있습니까?
Richard Hum

1
xterm은 UTF8 및 색상과 관련하여 상당히 문제가 있습니다. urxvt번거로운 사용 과 절약 을 고려해 보셨습니까 ? ( pacman -S rxvt-unicode).
Caleb

1
어떻게 입력 ^[했습니까? Ctrl + V + Esc를 사용하여 수행해야합니다.
Mikel

@Mikel 당신은 그것에 대해 옳았지만 차이를 만들지 않은 것 같습니다
jmathew

@Caleb 무슨 문제인가요? 더 나은 UTF-8 지원을 위해 rxvt에서 xterm으로 실제로 전환했으며 256 색상이 모두 나에게 적합합니다. TERM=screen-256colortmux 때문에 사용 하지만 xterm-256color외부 tmux 에서도 작동 합니다.
jw013

답변:


3

칼렙 은 그의 의견에 옳습니다. xterm은 상당히 오래되었으며 urxvt로 전환하는 것을 고려해야합니다. 적어도 256 및 utf-8 사용 버전은 패키지 관리자를 참조하여 올바른 버전을 설치하십시오.

멋진 WM, vim, urxvt, tmux / screen과 동일한 설정을 가지고 있으며 모두 256 색상과 utf-8에서 잘 작동합니다. xterm-256color수동으로 설정해야 할 경우를 대비 하여 TERM 을 설정했습니다.

Hum ... 편집 후 vim 색상 테마가 터미널에 올바르게 정의되어 있는지 확인할 수 있습니까?


정확히 무슨 뜻인지 모르겠습니다. peaksea.vim은 ctermfg / ctermbg를 사용하지만 GUI 함수도 정의되어 있습니다. 방해가 될 수 있습니까?
jmathew

다른 색 구성표로 시도해 볼 수 있습니까? 나는 이것이 큰 차이를 만들 것으로 기대하지는 않지만 당신은 결코 알지 못한다. 내가 생각할 수있는 또 다른 것은 기본적으로 256 색상을 강제로 소스에서 vim을 다시 컴파일하는 것입니다. 어쩌면 아치 패키지는 ... 이상하다
Sardathrion - 분석 재개 모니카

1

터미널이 256 색을 지원해야 할뿐만 아니라 vim의 테마는 .Xdefaults / .Xresources의 색을 나타냅니다. 이를 수정하려면 테마 작성자와 동일한 색상을 사용하거나 대신 gvim을 사용해야합니다.

코드를 들여다 보면 gvim을 올바르게 지원한다는 것을 알 수 있습니다. 이것이 CSAprox를 사용하는 이유는 HEX에서 gvim 색상 코드 (예 : # 123ABC)를 사용하여 터미널 색상으로 변환하기 때문입니다.

콘솔 모드의 Vim은 다음에서 색상을 가져옵니다.

hi Normal ctermfg=16 ctermbg=254

그래픽 모드에서

hi Normal guifg=#d0d0d0 guibg=#202020

따라서 터미널 색상에 "테마"를 설치하면 Vim에서 얻는 색상에 영향을 미칩니다. 또한, 당신이 가지고 있는지 다시 확인하십시오

set background=dark

.vimrc에


그래도 콘솔에서 cterm이 사용하는 것입니다. 문제는 .Xresources 파일이 없으며 .Xdefaults에는 전경과 배경을 다른 색으로 설정하는 것이 없다는 것입니다. 색상이 다시 정의되지 않았습니다. 내가 상상할 수있는 유일한 것은 작성자가 기본값과 다른 .Xdefaults / .Xresources를 정의했는지 여부입니다. 그러나 내가 사용하는 모든 256 색 터미널 테마는 모양과 크게 다릅니다. 누락 된 색상을 설정하는 다른 파일이 있습니까?
jmathew

우리가 X11에 대해 이야기하면 .Xdefaults와 .Xresources가 유일하게 관련된 파일이라고 생각합니다. 물론 기본 터미널 색상은 어떤 장소에 있어야하며 다양한 Linux 배포판에 따라 다를 수 있습니다. 또한 Gnome Terminal과 같은 터미널 에뮬레이터는 테마를 만든 사람이 사용자 정의 색상을 사용했는지 여부를 알 수 없으므로 사용자 정의 색상을 사용하거나 시스템을 사용할 수 있음을 잊을 수 없습니다. 나와 마찬가지로 vim 테마를 만든 괴물은 터미널 색상을 사용자 정의해야합니다.
Alex

0

넣어보십시오 :

export TERM=xterm-256color

당신의 bashrc에.

그 문제를 해결해야합니다 ...


2
.bashrc드물게 $ TERM 값을 내 보내면 거의 "수정"됩니다. 의도하지 않은 다른 문제가 발생할 가능성이 더 높습니다 ...
jasonwryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.