วิธีรับ VIM เพื่อแสดง 256 สีอย่างถูกต้อง


17

ฉันพยายามรับไฟล์ธีม 256 สีเพื่อใช้งานกับ VIM ภายใต้ xterm

นี่คือpeakseaวิธีที่ฉันมองหา:

ป้อนคำอธิบายรูปภาพที่นี่

มันควรมีลักษณะอย่างไร: มันควรมีลักษณะอย่างไร

ฉันได้ลองทำตามคำแนะนำในหน้า wiki แล้วไม่เป็นประโยชน์

set t_Co=256 ทำงานได้ดี แต่

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

ผลลัพธ์ในลำดับ escape จะถูกแสดงบนเทอร์มินัล:

แก้ไข: 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 urxvt ด้านล่างสุดของ xterm

$ echo $TERM
xterm-256color

วิธีแก้ปัญหา

ตอนนี้ฉันใช้CSApproxและทำงานได้ดีพอ สิ่งที่ฉันยังสับสนอยู่คือเหตุผลที่ชุดรูปแบบไม่ทำงานแม้ว่าจะมีการตั้งค่าสีคอนโซลที่เหมาะสม บางทีมันอาจจะเกี่ยวข้องกับวิธีที่กลุ่มพิจารณา ถูกติดตั้งเป็นส่วนหนึ่งของแพ็คเกจ gvim ดังนั้นจึงอาจเพิกเฉยต่อการตั้งค่า cterm

แก้ไข: และตอนนี้ทุกอย่างดูเหมือนจะดี ..

แปลกหลังจากติดตั้ง CSApprox แล้วลบมันทุกอย่างดูเหมือนจะทำงานได้ตามที่ควร เพียงดาวน์โหลด colorcheme อื่นและโหลดได้อย่างสมบูรณ์แบบแม้ไม่มีโมดูล CSApprox ทำงานอยู่


$ TERM ของคุณคืออะไร เป็นกลุ่มรู้ว่ามันสามารถใช้ 256 สีหรือไม่
Richard Hum

1
xterm นั้นค่อนข้างมีปัญหากับ UTF8 และสีต่างๆ คุณเคยคิดจะใช้urxvtและช่วยชีวิตคุณหรือเปล่า? ( pacman -S rxvt-unicode)
คาเลบ

1
คุณพิมพ์^[อย่างไร คุณต้องทำโดยใช้ Ctrl + V + Esc
มิเคล

@Mikel คุณถูกต้องเกี่ยวกับเรื่องนี้ แต่ดูเหมือนว่าจะไม่ได้สร้างความแตกต่าง
jmathew

@Caleb คุณหมายถึงปัญหาอะไร จริง ๆ แล้วฉันเปลี่ยนจาก rxvt เป็น xterm เพื่อการรองรับ UTF-8 ที่ดีขึ้นและ 256 สีใช้ได้ทั้งสำหรับฉัน ฉันใช้TERM=screen-256colorเนื่องจาก tmux ว่า ​​แต่สิ่งที่ยังทำงานกับxterm-256colortmux ภายนอก
jw013

คำตอบ:


3

Caleb พูดถูกในความคิดเห็นของเขา xterm ค่อนข้างเก่าและคุณควรพิจารณาเปลี่ยนเป็น urxvt - อย่างน้อยรุ่นที่เปิดใช้งาน 256 และ utf-8 อ้างถึงผู้จัดการแพ็คเกจของคุณเพื่อติดตั้งที่ถูกต้อง

ฉันมีการตั้งค่าที่เหมือนกันกับคุณ - WM, vim, urxvt, tmux / หน้าจอที่ยอดเยี่ยม - และพวกเขาทำงานได้ดีกับ 256 สีและ utf-8 ฉันได้ตั้งค่า TERM ไว้xterm-256colorในกรณีที่คุณต้องตั้งค่าด้วยตนเอง

ฮัม ... หลังจากการแก้ไขของคุณคุณสามารถตรวจสอบว่าชุดรูปแบบสีที่เป็นกลุ่มมีการกำหนดอย่างถูกต้องสำหรับอาคาร?


ไม่แน่ใจว่าคุณหมายถึงอะไร peaksea.vim ใช้ ctermfg / ctermbg แต่มีฟังก์ชัน gui ที่กำหนดเช่นกัน นั่นอาจรบกวนหรือไม่
jmathew

คุณลองกับชุดรูปแบบสีที่แตกต่างกันได้อย่างไร ฉันไม่ได้คาดหวังว่าสิ่งนี้จะสร้างความแตกต่างมาก แต่คุณไม่เคยรู้ สิ่งอื่น ๆ ที่ฉันสามารถคิดได้คือการคอมไพล์เสียงเรียกเข้าจากแหล่งบังคับ 256 สีโดยค่าเริ่มต้น บางทีแพ็คเกจที่อยู่ในซุ้มประตูก็แปลก ...
Sardathrion - Reinstate Monica

1

ไม่เพียง แต่เทอร์มินัลของคุณควรรองรับ 256 สีธีมในกลุ่มจะอ้างอิงถึงสีใน. Xdefaults / .Xresources ของคุณ ในการแก้ไขปัญหานี้คุณควรใช้สีเดียวกับผู้แต่งชุดรูปแบบหรือใช้ gvim แทน

เมื่อมองดูรหัสฉันเห็นว่ามันรองรับ gvim อย่างถูกต้องนั่นเป็นสาเหตุที่ใช้ CSAprox เพราะใช้รหัสสี gvim ใน HEX (เช่น: # 123ABC) และแปลเป็นสีเทอร์มินัลของคุณ

ตัวอย่าง

เสียงเรียกเข้าในโหมดคอนโซลจะใช้สีจาก:

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 เป็นไฟล์เดียวที่เกี่ยวข้อง (เคยถูกคัดค้านในระบบ Archlinux มาก่อน) แน่นอนสีเทอร์มินัลเริ่มต้นจะต้องอยู่ในบางสถานที่และอาจแตกต่างกันเนื่องจากการแจกแจงลินุกซ์ต่างๆ นอกจากนี้เราไม่สามารถลืมเทอร์มินัลอีมูเลเตอร์เช่นเทอร์มินัล Gnome มีสีที่กำหนดเองหรือใช้ระบบเนื่องจากเราไม่สามารถทราบได้อย่างแน่นอนว่าผู้สร้างธีมใช้สีที่กำหนดเองหรือไม่แม้ว่ามันจะมีเหตุผลมาก ความคลั่งไคล้ใด ๆ ที่เหมือนกับฉันเคยสร้างธีมเป็นกลุ่มแน่นอนว่าได้ปรับแต่งสีเทอร์มินัลแล้ว
อเล็กซ์

0

ลองใส่:

export TERM=xterm-256color

ใน bashrc ของคุณ

ที่ควรแก้ไข ...


2
การส่งออกมูลค่า $ TERM ใน.bashrc"แก้ไข" อะไรก็ตามที่คุณไม่ค่อยได้ทำ มันมีแนวโน้มที่จะก่อให้เกิดปัญหาที่ไม่ได้ตั้งใจอื่น ๆ ...
jasonwryan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.