Pourquoi l'ordre de: set bg = dark et: set bg = light matter?

11

En essayant de faire correspondre la palette de couleurs de mon terminal et celle de GVim, j'ai remarqué ceci:

  1. Lorsque j'ouvre GVim et Vim, je vois: entrez la description de l'image ici (C'est le même fichier, mon vimrc.)
  2. Si je le fais :set t_Co=256, rien ne se passe dans GVim (sauf qu'il clignote), alors que les couleurs dans le terminal sont maintenant différentes. Si je le fais :set bg=darkmaintenant, cela ne fait aucune différence (GVim clignote à nouveau). Si je le fais :set bg=lightet puis de :set bg=darknouveau, je reçois: entrez la description de l'image ici

Les deux :set bg=darket :set t_Co=256sont présents dans mon vimrc . Pourquoi ne suis :set bg- je pas et ne :set t_Cocolle- t-il pas , et pourquoi la réinitialisation :set bg=darkaprès :set bg=lightfait-elle une différence là où elle ne l'a pas été à l'origine?

J'utilise Arch Linux, le terminal est GNOME Terminal et je n'en ai pas .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
la source

Réponses:

9
  1. Le schéma de couleurs elflord le fait set background=dark. Puisqu'il provient de votre, set bg=lightil le remplacera.

  2. set t_Co=256est inutile . Il ne fait rien dans GVim et vous devriez plutôt configurer correctement votre émulateur de terminal.

    De plus, elflord n'utilise que les couleurs ANSI de base dans les terminaux couleur, donc peu importe si vous forcez Vim à voir 256 couleurs ou si vous définissez votre TERMvaleur sur 256 couleurs ; votre schéma de couleurs n'utilisera pas cette palette étendue de toute façon. Ce qui se passe à la place, c'est que votre original TERMest probablement xtermou screenou une autre valeur qui limite Vim à 8 couleurs. Mais Elflord utilise à la fois des couleurs "sombres" et "claires" qui ont besoin de TERMplus de 8. Ainsi, forcer 256 couleurs modifiera vos couleurs.

  3. Recommandations:

    • Ne changez pas la valeur de 't_Co'.
    • Non set background.
romainl
la source
1
Si elflord est réglé bgsur dark, pourquoi son apparence change-t-elle si je le redéfinis et vice-versa light? Notez que mon vimrc ne fonctionne pas set bg=light.
muru
set bgmodifie les couleurs et les attributs de certains groupes de surbrillance afin qu'ils fonctionnent mieux sur un fond sombre ou clair. Il est principalement arbitraire et peut ou non avoir un effet en fonction du schéma de couleurs que vous utilisez. Jouer avec cette option n'est pas une bonne idée.
romainl
J'ai suivi vos conseils sur bget t_Co. Je me demande simplement pourquoi elflord set bg=darket le mien provoquent des résultats aussi différents (mais répétables)?
muru
2
C'est l'ordre dans lequel ils sont appliqués. Parce que l'un n'est pas exactement l'opposé de l'autre basculer plusieurs fois entre "sombre" et "clair" n'est pas une bascule entre deux états définis et stables.
romainl