Das solarisierte Thema definiert einige Grundfarben und weist diese Variablen zu, wie hier dargestellt .
Ich möchte wissen, wie ich diese Farbdefinitionen in meiner .vimrc
Datei verwenden kann. Derzeit verwende ich Pathogen zum Laden von Solaren und es wird mit einem einfachen syntax enabled
und geladen colorscheme solarized
, aber wenn ich zB s:base00
in meiner .vimrc
Datei referenzieren möchte , erhalte ich eine Fehlermeldung:
E421: Color name or number not recognized: ctermfg=s:base00
Antworten:
Es gibt zwei Probleme:
Der
:highlight
Befehl wertetctermfg
Werte nicht als Ausdrücke aus. Es werden nur eine wörtliche Farbnummer oder ein Farbname akzeptiert (siehe:help cterm-colors
). Sie erhalten E421, das:base00
es sich weder um eine Nummer noch um einen gültigen Farbnamen handelt.Sie können
execute 'highlight GroupName ctermfg=' . s:base00
eine Befehlszeichenfolge erstellen und ausführen (dies ist im Grunde das, wascolors/solarized.vim
funktioniert). Es gibt jedoch ein zusätzliches Problem.Variablen, die mit beginnen,
s:
sind skriptlokale Variablen (siehe:help s:var
), daher sind sie in Ihrer.vimrc
(oder an einer anderen Stelle als dem Skript, in dem sie definiert sind :) nicht verfügbarcolors/solarized.vim
.Das definierende Skript „exportiert“ die Farbwerte als Teil der von ihm definierten Hervorhebungsgruppen, scheint jedoch nicht die einzelnen cterm / gui-Werte zu exportieren, die es für jede solarisierte Farbe verwendet. Wenn Sie eine eigene Hervorhebungsgruppe erstellen möchten, die diese Werte verwendet, müssen Sie sie wahrscheinlich in Ihrer Kopie von bearbeiten
colors/solarized.vim
(obwohl Sie möglicherweises:fg_base00
/s:bg_base00
anstelle dess:base00
vorherigen Coversguifg
vs. verwenden möchten,ctermfg
damit Ihre Gruppe automatisch daran arbeitet sowohl GUIs als auch Terminals).quelle