Solarisierte Farbdefinitionen in der vimrc-Datei

7

Das solarisierte Thema definiert einige Grundfarben und weist diese Variablen zu, wie hier dargestellt .

Ich möchte wissen, wie ich diese Farbdefinitionen in meiner .vimrcDatei verwenden kann. Derzeit verwende ich Pathogen zum Laden von Solaren und es wird mit einem einfachen syntax enabledund geladen colorscheme solarized, aber wenn ich zB s:base00in meiner .vimrcDatei referenzieren möchte , erhalte ich eine Fehlermeldung:

E421: Color name or number not recognized: ctermfg=s:base00
Kitaro
quelle
3
"ein Fehler" ist nicht sehr nützlich. Bitte geben Sie die genaue Fehlermeldung an, die Sie erhalten.
Mat
E421: Farbname oder -nummer nicht erkannt: ctermfg = s: base00
Kitaro

Antworten:

7

Es gibt zwei Probleme:

  • Der :highlightBefehl wertet ctermfgWerte nicht als Ausdrücke aus. Es werden nur eine wörtliche Farbnummer oder ein Farbname akzeptiert (siehe :help cterm-colors). Sie erhalten E421, da s:base00es sich weder um eine Nummer noch um einen gültigen Farbnamen handelt.

    Sie können execute 'highlight GroupName ctermfg=' . s:base00eine Befehlszeichenfolge erstellen und ausführen (dies ist im Grunde das, was colors/solarized.vimfunktioniert). 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ügbar colors/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öglicherweise s:fg_base00/ s:bg_base00anstelle des s:base00vorherigen Covers guifgvs. verwenden möchten, ctermfgdamit Ihre Gruppe automatisch daran arbeitet sowohl GUIs als auch Terminals).

Chris Johnsen
quelle