VIM이 256색을 올바르게 표시하도록 만드는 방법

VIM이 256색을 올바르게 표시하도록 만드는 방법

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

이것은펑하이내 생각엔:

여기에 이미지 설명을 입력하세요.

다음과 같아야 합니다. 그것은 어떤 모습이어야 하는가

나는 위키 페이지의 팁을 따르려고 했지만 성공하지 못했습니다.

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

.X기본

!--------------------- 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

해결책

나는 현재 사용하고 있습니다근사그리고 그것은 아주 잘 작동하는 것 같습니다. 적절한 콘솔 색상 설정을 정의했는데도 테마가 작동하지 않는 이유가 여전히 혼란스럽습니다. 아마도 이것은 vim이 자신을 보는 방식과 관련이 있을 것입니다. gvim 패키지의 일부로 설치되므로 cterm 설정을 무시할 수 있습니다.

편집: 이제 모든 것이 괜찮은 것 같습니다..

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

답변1

갈렙그의 의견은 정확합니다. xterm은 꽤 오래되었으므로 최소 256 및 utf-8을 지원하는 버전인 urxvt로 전환하는 것을 고려해야 합니다. 올바른 버전을 설치하려면 패키지 관리자를 참조하세요.

나는 당신과 동일한 설정을 가지고 있습니다 - 훌륭한 WM, vim, urxvt, tmux/screen - 모두 256색을 처리하고 utf-8을 잘 처리합니다. xterm-256color수동으로 설정해야 하는 경우를 대비해 TERM을 로 설정했습니다 .

흠... 편집 후에 vim 색상 테마가 터미널에 올바르게 정의되었는지 확인할 수 있나요?

답변2

터미널이 256가지 색상을 지원해야 할 뿐만 아니라 vim의 테마도 .Xdefaults/.Xresources의 색상을 참조합니다. 이 문제를 해결하려면 테마 작성자와 동일한 색상을 사용하거나 gvim을 사용해야 합니다.

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

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

hi Normal ctermfg=16 ctermbg=254

그래픽 모드에서:

hi Normal guifg=#d0d0d0 guibg=#202020

따라서 터미널 색상에 대해 일종의 "테마"가 설치되어 있으면 Vim에서 얻는 색상에 영향을 미칩니다. 또한,

set background=dark

귀하의 .vimrc에서

답변3

다음을 입력해 보세요.

export TERM=xterm-256color

당신의 bashrc에.

그거 고쳐야 할텐데...

관련 정보