Comment créer ma propre palette de couleurs?

16

Quels fichiers dois-je créer? Que devrait contenir ces fichiers? Existe-t-il un fichier de couleurs par défaut que je peux utiliser et modifier les valeurs de couleur en conséquence?

dkns
la source

Réponses:

15

Emplacements Colorscheme

Tout d'abord, Vim recherche dans son dossier d'exécution un colorsrépertoire. Voici où tous les schémas de couleurs doivent être stockés ( :help 'runtimepath')

Cela signifie que vous aurez besoin d'un fichier qui réside dans le ~/.vim/colorsdossier. Les schémas de couleurs par défaut se trouvent dans $VIMRUNTIME/colors, où se $VIMRUNTIMEtrouve généralement /usr/share/vim/vim74ou dans les /usr/local/share/vim/vim74répertoires, selon la façon dont Vim est installé (remplacer vim74 pour vim73 pour Vim version 7.3)

Passons maintenant à la partie amusante.

Création d'un schéma de couleurs

Pour commencer à créer votre propre schéma de couleurs, je vous suggère fortement de jeter un œil aux schémas de couleurs par défaut et d'expérimenter avec leur modification.

Copiez donc le schéma de couleurs par défaut du $VIMRUNTIME/colorsdossier dans votre ~/.vim/colorsdossier. Nommez-le quelque chose qui se distingue du nom du schéma de couleurs par défaut. Donc, si vous avez copié le desertschéma de couleurs fourni avec Vim par défaut, nommez le fichier comme default_mod.vimou quelque chose à cet effet. Ouvrez le fichier de couleurs et modifiez le let g:colors_namepour vous distinguer également du fichier de couleurs par défaut. Par convention, cela devrait être le même que le nom du fichier colorscheme.

Dans le colorscheme, tout ce que vous avez à faire est de donner les couleurs pour ctermbg, ctermfg, guibg, guifg(pour arrière - plan terminal, premier plan terminal, arrière - plan graphique, les couleurs de premier plan respectivement graphiques) pour les différents construit dans les groupes de surbrillance. Pour consulter la liste des groupes de surbrillance que vous pouvez modifier, consultez :help highlight-default. Vous pouvez également utiliser les attributs ctermet guipour spécifier que vous souhaitez qu'un groupe de surbrillance soit en gras ou en italique.

Par exemple, cela définira une couleur verte pour une chaîne:

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

Vous pouvez également utiliser des liens de surbrillance pour lier un groupe de surbrillance à un autre groupe. Ceci est utile si vous souhaitez que deux groupes de surbrillance soient de la même couleur.

Par exemple, vous pouvez lier le diffAddedgroupe de surbrillance au groupe de surbrillance de chaîne défini ci-dessus:

highlight link diffAdded String

Akshay
la source
Si je copie simplement l'un des fichiers colorscheme.vim et que je le place dans un dossier séparé, pourrai-je le réutiliser sur mes autres machines? Par exemple, si je le mets en dépôt sur github, pourrai-je simplement le cloner ou l'activer dans l'un des gestionnaires de plugins?
dkns
@dkns, oui, exactement. Par exemple, vous pouvez nommer votre schéma de couleurs en tant que "dkns_colorscheme.vim", le placer dans un répertoire colors / puis le pousser vers Github. Si vous avez installé un gestionnaire de plugins, le clonage de ce dépôt rendra le schéma de couleurs disponible pour Vim.
akshay
Une autre question. Je ne sais pas si je devrais le poster ici en tant que commentaire ou poser une autre question générale. Comment puis-je trouver des valeurs de couleur pour cterm? J'aimerais que ce thème soit le même sur gui et terminal mais je ne sais pas comment convertir les valeurs hexadécimales en valeurs cterm.
dkns
1
@dkns Étant donné que les couleurs des terminaux dépendent largement de la palette de couleurs utilisée dans l'émulateur de terminal, cela est assez difficile à faire. Lorsque je créais mon schéma de couleurs, j'ai trouvé utile d'afficher à quoi ressemblaient chacune des 256 couleurs. J'utilise ce petit script dans mon dossier bin. Vous pouvez simplement utiliser un sélecteur de couleurs pour ensuite choisir les couleurs pour garantir les mêmes couleurs gui et cterm. Je passerais de cterm-> gui et non l'inverse car il y a plus de couleurs dans le gui vim. J'espère que cela pourra aider.
akshay
7

Consultez des sites comme Vivify et Villustrator . Ils vous permettent essentiellement de créer ou de modifier graphiquement un schéma, puis de télécharger les fichiers nécessaires.

Collin Peters
la source
0

Il existe quelques outils pour rendre cela automatique:

  • vivify : assez complexe, vous devez sélectionner manuellement chaque couleur pour chaque groupe de surbrillance unique.
  • vimcolors.org : très simple et facile. Choisissez simplement quelques couleurs et il générera automatiquement le schéma pour vous.
pablopunk
la source
0

Un autre excellent outil est RNB de romainl qui utilise ERB . ERB (Embedded RuBy) est une fonctionnalité de Ruby qui vous permet de générer du texte à partir de modèles.

L'utilisation de cet outil est donc assez simple: vous devez d'abord définir différentes variables correspondant à la nomenclature de votre schéma de couleurs et bien sûr à son contenu réel (à quoi les couleurs doivent ressembler, quels groupes vous souhaitez utiliser, etc.) assez simple car l'auteur a écrit beaucoup de commentaires pour vous aider. Ensuite, tout ce que vous devez faire est de donner votre modèle personnalisé à erb et l'outil générera les bons fichiers.

statox
la source