¿Por qué importa el orden de: set bg = dark y: set bg = light?

11

Al intentar hacer coincidir la paleta de colores de mi terminal y la de GVim, noté esto:

  1. Cuando abro GVim y Vim, veo: ingrese la descripción de la imagen aquí (Ese es el mismo archivo, mi vimrc.)
  2. Si lo hago :set t_Co=256, no pasa nada en GVim (excepto que parpadea), mientras que los colores en el terminal ahora se ven diferentes. Si lo hago :set bg=darkahora, no hay diferencia (nuevamente GVim parpadea). Si luego lo hago :set bg=lighty luego :set bg=darkotra vez, obtengo: ingrese la descripción de la imagen aquí

Ambos :set bg=darky :set t_Co=256están presentes en mi vimrc . ¿Por qué no lo hago :set bgy me :set t_Coquedo, y por qué configurar :set bg=darknuevamente después de :set bg=lighthacer una diferencia donde originalmente no lo hizo?

Estoy usando Arch Linux, el terminal es GNOME Terminal, y no tengo un .gvimrc.

$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Feb  4 2015 08:03:11)
Included patches: 1-617
Compiled by Arch Linux
Huge version with GTK2 GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
+balloon_eval    +float           +mouse_urxvt     -tag_any_white
+browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
+clientserver    -hangul_input    +netbeans_intg   +title
+clipboard       +iconv           +path_extra      +toolbar
+cmdline_compl   +insert_expand   +perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       -python          +viminfo
+cscope          +lispindent      +python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con_gui  +lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      +X11
+dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     +xim
+emacs_tags      +mouseshape      -sniff           +xsmp_interact
+eval            +mouse_dec       +startuptime     +xterm_clipboard
+ex_extra        +mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/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/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz  -D_FORTIFY_SOURCE=2  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -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 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype  -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE  -lm -lncurses -lelf -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 -fstack-protector -L/usr/local/lib  -L/usr/lib/perl5/core_perl/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc  -L/usr/lib/python3.4/config-3.4m -lpython3.4m -lpthread -ldl -lutil -lm  -lruby -lpthread -lgmp -ldl -lcrypt -lm  -L/usr/lib
muru
fuente

Respuestas:

9
  1. El esquema de colores de elflord sí set background=dark. Dado que se obtiene después de su set bg=light, lo anulará.

  2. set t_Co=256es inútil . No hace nada en GVim y, en su lugar, debe configurar su emulador de terminal correctamente.

    Además, elflord solo usa colores ANSI básicos en terminales de color, por lo que realmente no importa si obliga a Vim a ver 256 colores o si establece TERMun valor de 256 colores ; su esquema de colores no usará esa paleta extendida de todos modos. Lo que ocurre es que en lugar de su original, TERMes probable que xtermo screeno algún otro valor que restringe Vim a 8 colores. Pero Elflord usa colores "oscuros" y "claros" que necesitan un valor TERMsuperior a 8. Por lo tanto, forzar 256 colores alterará sus colores.

  3. Recomendaciones:

    • No cambies el valor de 't_Co'.
    • No hacerlo set background.
romainl
fuente
1
Si elflord se establece bgen dark, ¿por qué cambia su apariencia si lo configuro lighty regreso? Tenga en cuenta que mi vimrc no funciona set bg=light.
muru
set bgcambia los colores y los atributos de algunos grupos resaltados para que funcionen mejor sobre fondo oscuro o claro. Es principalmente arbitrario y puede o no tener un efecto dependiendo del esquema de colores que use. Jugar con esa opción no es una buena idea.
romainl
Seguí tu consejo sobre bgy t_Co. Me pregunto por qué elflord set bg=darky el mío causan resultados tan diferentes (pero repetibles).
muru
2
Es el orden en que se aplican. Debido a que uno no es exactamente lo opuesto al otro, cambiar varias veces entre "oscuro" y "claro" no es una alternancia entre dos estados definidos y estables.
romainl