Warum ist die Reihenfolge von: set bg = dark und: set bg = light wichtig?

11

Beim Versuch, die Farbpalette meines Terminals und die von GVim abzugleichen, bemerkte ich Folgendes:

  1. Wenn ich GVim und Vim öffne, sehe ich: Geben Sie hier die Bildbeschreibung ein (Das ist dieselbe Datei, meine vimrc.)
  2. Wenn ich das tue :set t_Co=256, passiert in GVim nichts (außer es blinkt), während die Farben im Terminal jetzt anders aussehen. Wenn ich das :set bg=darkjetzt mache, macht es keinen Unterschied (wieder blinkt GVim). Wenn ich es dann :set bg=lightund dann :set bg=darkwieder tue , bekomme ich: Geben Sie hier die Bildbeschreibung ein

Beide :set bg=darkund :set t_Co=256sind in meinem vimrc vorhanden . Warum ist mein :set bgund :set t_Cokleben nicht und warum macht das :set bg=darkerneute Einstellen nach dem :set bg=lightÄndern einen Unterschied, wo es ursprünglich nicht war?

Ich verwende Arch Linux, das Terminal ist GNOME Terminal und ich habe kein .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
quelle

Antworten:

9
  1. Das Elflord-Farbschema tut es set background=dark. Da es nach Ihrem bezogen wird set bg=light, wird es es überschreiben.

  2. set t_Co=256ist sinnlos . In GVim funktioniert nichts, und Sie sollten stattdessen Ihren Terminalemulator ordnungsgemäß einrichten.

    Außerdem verwendet elflord nur grundlegende ANSI-Farben in Farbterminals. Es spielt also keine Rolle, ob Sie Vim zwingen, 256 Farben TERManzuzeigen, oder ob Sie einen Wert von 256 Farben festlegen. Ihr Farbschema wird diese erweiterte Palette sowieso nicht verwenden. Stattdessen handelt es sich bei Ihrem Original TERMwahrscheinlich um einen xtermoder screeneinen anderen Wert, der Vim auf 8 Farben beschränkt. Aber Elflord verwendet sowohl "dunkle" als auch "helle" Farben, die eine TERMüber 8 benötigen. Wenn Sie also 256 Farben erzwingen, ändern sich Ihre Farben.

  3. Empfehlungen:

    • Ändern Sie nicht den Wert von 't_Co'.
    • Tu es nicht set background.
romainl
quelle
1
Wenn elflord bgauf eingestellt ist dark, warum ändert sich sein Aussehen, wenn ich es auf lightund wieder zurück setze ? Beachten Sie, dass mein vimrc nicht funktioniert set bg=light.
Muru
set bgÄndert die Farben und Attribute einiger Hervorhebungsgruppen, sodass sie auf dunklem oder hellem Hintergrund besser funktionieren. Es ist meistens willkürlich und kann je nach verwendetem Farbschema Auswirkungen haben oder auch nicht. Es ist keine gute Idee, mit dieser Option zu spielen.
Romainl
Ich habe Ihren Rat auf bgund befolgt t_Co. Ich frage mich nur, warum Elflords set bg=darkund meine so unterschiedliche (aber wiederholbare) Ergebnisse verursachen.
Muru
2
Es ist die Reihenfolge, in der sie angewendet werden. Da das eine nicht das genaue Gegenteil des anderen ist, ist das mehrfache Umschalten zwischen "dunkel" und "hell" kein Umschalten zwischen zwei bestimmten und stabilen Zuständen.
Romainl