我看过很多文章,其中没有使用:t启用'tgc'
if exists('+termguicolors') let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum" let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum" " let &t_8f = "\<Esc>[38:2;%lu;%lu;%lum" ( I have tried both ':' and ';' ) " let &t_8b = "\<Esc>[48:2;%lu;%lu;%lum" set t_Co=256 set termguicolors " colorscheme gruvbox " color scheme endif
导致vim具有奇怪的颜色输出-通常使用tmux。
最初我也发现了成功。直到一个美好的一天(严重!),vim开始变得怪异,但以另一种方式。它变成单色。
[如果我没有设置它,即se notgc
,我实际上得到了正确的配色方案。这在vim + tmux用法上也完全相同。
但是,当我使用vim + tmux时,如果我杀死一个窗格或重新加载〜/ tmux.config,现有的vim会话将再次变得怪异!
Here看一下这种情况,左边是一个新打开的缓冲区,而右边的具有相同设置的缓冲区突然变得很奇怪。
我的设置:
$ cat /proc/version
Linux version 2.6.32-504.30.3.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Jul 15 10:13:09 UTC 2015
vim --version VIM - Vi IMproved 8.1 (2018 May 18, compiled Jul 26 2019 22:56:22) Included patches: 1 Compiled by bob@c6x64 Huge version with GTK2 GUI. Features included (+) or not (-): +acl +farsi +mouse_sgr -tag_any_white +arabic +file_in_path -mouse_sysmouse -tcl +autocmd +find_in_path +mouse_urxvt +termguicolors -autoservername +float +mouse_xterm +terminal +balloon_eval +folding +multi_byte +terminfo +balloon_eval_term -footer +multi_lang +termresponse +browse +fork() -mzscheme +textobjects ++builtin_terms +gettext +netbeans_intg +timers [25/126] +byte_offset -hangul_input +num64 +title +channel +iconv +packages +toolbar +cindent +insert_expand +path_extra +user_commands +clientserver +job -perl +vertsplit +clipboard +jumplist +persistent_undo +virtualedit +cmdline_compl +keymap +postscript +visual +cmdline_hist +lambda +printer +visualextra +cmdline_info +langmap +profile +viminfo +comments +libcall -python +vreplace +conceal +linebreak -python3 +wildignore +cryptv +lispindent +quickfix +wildmenu +cscope +listcmds +reltime +windows +cursorbind +localmap +rightleft +writebackup +cursorshape -lua -ruby +X11 +dialog_con_gui +menu +scrollbind -xfontset +diff +mksession +signs +xim +dnd +mouse +startuptime +xsmp_interact -ebcdic +mouseshape +statusline +xterm_clipboard +emacs_tags +mouse_dec -sun_workshop -xterm_save +eval +mouse_gpm +syntax +ex_extra -mouse_jsbterm +tag_binary +extra_search +mouse_netterm +tag_old_static system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "$VIM/gvimrc" user gvimrc file: "$HOME/.gvimrc" 2nd user gvimrc file: "~/.vim/gvimrc" defaults file: "$VIMRUNTIME/defaults.vim" system menu file: "$VIMRUNTIME/menu.vim" fall-back for $VIM: "/tools/apps/local/vim/latest/share/vim" Compilation: gcc -std=gnu99 -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/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/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freety pe2 -I/usr/include/libpng12 -O2 -fno-strength-reduce -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 Linking: gcc -std=gnu99 -L/usr/local/lib -Wl,--as-needed -o vim -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixb uf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -lti nfo -lelf -lnsl -lselinux -lacl -lattr -lgpm
默认cshrc将TERM显式设置为
vt100
。如果将其更改为xterm-256color
或screen-256color
,实际上我在vim中得到了良好的配色方案,并且:set term=$TERM
或显式地获得了上述两个中的任何一个,并且出现了相同的问题。
set -g default-terminal "screen/xterm-256color"
set -ga terminal-overrides ",*256col*:Tc"
-关于颜色支持:自从开始以来没有真彩色支持>
awk 'BEGIN{ s="/\\/\\/\\/\\/\\"; s=s s s s s s s s; for (colnum = 0; colnum<77; colnum++) { r = 255-(colnum*255/76); g = (colnum*510/76); b = (colnum*255/76); if (g>255) g = 510-g; printf "\033[48;2;%d;%d;%dm", r,g,b; printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b; printf "%s\033[0m", substr(s,colnum+1,1); } printf "\n"; }
返回this.,其中Konsole返回的则平滑得多output。
我应该放弃gnome-terminal并尝试其他一些模拟器(比Konsole更加灵活)吗?如果能在gnome-terminal本身中找到解决方案,我将不胜感激。
我希望我已提供所有相关细节,谢谢
[我看过很多文章,其中没有使用:tifc启用'tgc'(如果存在('+ termguicolors'),则let&t_8f =“ \
我相信部分原因是您的tmux配置。您需要在.tmux.conf
中设置以下内容:
set -g default-terminal screen-256color
set -ag terminal-overrides ",xterm-256color:Tc"