Wie kann ich mein eigenes Farbschema erstellen?

16

Welche Dateien muss ich erstellen? Was sollte in diesen Dateien sein? Gibt es irgendwo eine Standardfarbschemadatei, die ich verwenden und die Farbwerte entsprechend ändern kann?

dkns
quelle

Antworten:

15

Farbschema Standorte

Zunächst sucht Vim in seinen Laufzeitordnern nach einem colorsVerzeichnis. Hier sollen alle Farbschemata abgelegt werden ( :help 'runtimepath')

Dies bedeutet, dass Sie eine Datei benötigen, die sich im ~/.vim/colorsOrdner befindet. Standardfarbschemata befinden sich in $VIMRUNTIME/colors, wo $VIMRUNTIMEnormalerweise /usr/share/vim/vim74oder in den /usr/local/share/vim/vim74Verzeichnissen, je nachdem, wie Vim installiert ist (Vim73 wird durch Vim74 für Vim 7.3 ersetzt).

Nun zum lustigen Teil.

Farbschema erstellen

Um mit der Erstellung Ihres eigenen Farbschemas zu beginnen, empfehle ich dringend, sich die Standardfarbschemas anzusehen und mit deren Modifizierung zu experimentieren.

Kopieren Sie also das Standardfarbschema aus dem $VIMRUNTIME/colorsOrdner in Ihren ~/.vim/colorsOrdner. Nennen Sie es etwas, das sich vom Standardnamen des Farbschemas unterscheidet. Wenn Sie desertalso das mit Vim gelieferte Farbschema kopiert haben , benennen Sie die Datei wie folgt default_mod.vim. Öffnen Sie die Farbschemadatei und ändern Sie die let g:colors_name, um sich auch von der Standardfarbschemadatei zu unterscheiden. Konventionell sollte dies der gleiche sein wie der Name der Farbschemadatei.

Im Farbschema , alles , was Sie tun müssen , ist den Farben gibt für ctermbg, ctermfg, guibg, guifg(für Terminal Hintergrund, Terminal Vordergrund, gui Hintergrund, gui Vordergrundfarben jeweils) für die verschiedenen in Lichtergruppen aufgebaut. Um die Liste der Markierungsgruppen auszuchecken, die Sie ändern können, checken Sie aus :help highlight-default. Optional können Sie auch die Attribute ctermund verwenden gui, um anzugeben, dass eine Hervorhebungsgruppe fett oder kursiv sein soll.

Zum Beispiel wird hiermit eine grüne Farbe für einen String festgelegt:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

Sie können Hervorhebungslinks auch verwenden, um eine Hervorhebungsgruppe mit einer anderen Gruppe zu verknüpfen. Dies ist nützlich, wenn zwei Markierungsgruppen die gleichen Farben haben sollen.

Beispielsweise könnten Sie die diffAddedHervorhebungsgruppe mit der oben definierten String-Hervorhebungsgruppe verknüpfen :

highlight link diffAdded String

Akshay
quelle
Wenn ich nur eine der colorscheme.vim-Dateien kopiere und sie dann in einen separaten Ordner lege, kann ich sie dann auf meinen anderen Computern wiederverwenden? Wenn ich es zum Beispiel in ein Repo auf Github lege, kann ich es dann einfach klonen oder in einem der Plugin-Manager aktivieren?
dkns
@ dkns, ja, genau. Zum Beispiel können Sie Ihr Farbschema als "dkns_colorscheme.vim" bezeichnen, es in ein colors / -Verzeichnis stellen und dann an Github senden. Wenn Sie einen Plugin-Manager installiert haben, wird das Farbschema durch Klonen dieses Repos Vim zur Verfügung gestellt.
Akshay
Eine andere Frage. Ich bin mir nicht sicher, ob ich es hier als Kommentar posten oder eine andere allgemeine Frage stellen soll. Wie finde ich Farbwerte für cterm? Ich möchte, dass dieses Thema auf GUI und Terminal gleich aussieht, aber ich weiß nicht, wie ich Hex-Werte in CTERM-Werte konvertieren soll.
dkns
1
@dkns Da die Terminalfarben stark von der im Terminalemulator verwendeten Farbpalette abhängen, ist dies ziemlich schwierig. Als ich mein Farbschema erstellte, fand ich es hilfreich anzuzeigen, wie jede der 256 Farben aussieht. Ich benutze dieses kleine Skript in meinem Bin-Ordner. Sie können einfach einen Farbwähler verwenden, um dann die Farben auszuwählen, um die gleichen GUI- und CTERM-Farben sicherzustellen. Ich würde von cterm-> gui gehen und nicht umgekehrt, da es mehr Farben in der gui vim gibt. Ich hoffe, das hilft.
Akshay
7

Schauen Sie sich Websites wie Vivify und Villustrator an . Im Grunde können Sie ein Schema grafisch erstellen oder optimieren und anschließend die erforderlichen Dateien herunterladen.

Collin Peters
quelle
0

Es gibt einige Werkzeuge, um dies zu automatisieren:

  • vivify : ziemlich komplex, Sie müssen jede Farbe für jede einzelne Hervorhebungsgruppe manuell auswählen.
  • vimcolors.org : sehr einfach und leicht. Wählen Sie einfach einige Farben und es wird automatisch das Schema für Sie generiert.
Pablopunk
quelle
0

Ein weiteres großartiges Tool ist RNB von Romainl, das ERB verwendet . ERB (Embedded RuBy) ist eine Funktion von Ruby, mit der Sie Text aus Vorlagen generieren können.

Die Verwendung dieses Werkzeugs ist also ziemlich einfach: Zuerst müssen Sie verschiedene Variablen definieren, die der Nomenklatur Ihres Farbschemas und natürlich dem tatsächlichen Inhalt (wie die Farben aussehen sollten, welche Gruppen Sie verwenden möchten usw.) entsprechen Ziemlich einfach, weil der Autor viele Kommentare geschrieben hat, um Ihnen zu helfen. Dann müssen Sie nur noch Ihre angepasste Vorlage an erb übergeben, und das Tool generiert die richtigen Dateien.

statox
quelle