Lorsque, par exemple, vous créez un colorscheme, comment peut-on définir # 40ffff comme "UglyColor" (c'est-à-dire comme une variable)?Définition d'une variable de couleur dans vim
Possible/impossible?
Lorsque, par exemple, vous créez un colorscheme, comment peut-on définir # 40ffff comme "UglyColor" (c'est-à-dire comme une variable)?Définition d'une variable de couleur dans vim
Possible/impossible?
Ce n'est pas possible avec la syntaxe intégrée. Cependant, il peut être fait si le vous faites votre propre syntaxe:
let UglyColor = '#40ffff'
let Greenish = '#00dd00'
let MyStyle = 'bold'
exe 'hi Keyword gui=' . MyStyle . ' guifg=' . UglyColor
exe 'hi Comment guifg=' . Greenish
Vous pouvez alors aller plus loin en créant un dictionnaire:
let UglyColor = '#40ffff'
let Greenish = '#00dd00'
let ColourAssignment = {}
let ColourAssignment['Keyword'] = {"GUIFG": UglyColor, "GUI": "Bold"}
let ColourAssignment['Comment'] = {"GUIFG": Greenish}
Et ensuite traiter avec quelque chose comme ceci:
for key in keys(ColourAssignment)
let s:colours = ColourAssignment[key]
if has_key(s:colours, 'GUI')
let gui = s:colours['GUI']
else
let gui='NONE'
endif
if has_key(s:colours, 'GUIFG')
let guifg = s:colours['GUIFG']
else
let guifg='NONE'
endif
if has_key(s:colours, 'GUIBG')
let guibg = s:colours['GUIBG']
else
let guibg='NONE'
endif
if key =~ '^\k*$'
execute "hi ".key." term=".term." cterm=".cterm." gui=".gui." ctermfg=".ctermfg." guifg=".guifg." ctermbg=".ctermbg." guibg=".guibg." guisp=".guisp
endif
Voici comment fonctionne my Bandit colour scheme (avec un peu plus logique là-dedans pour les couleurs de CTERM génératrices automatique, les couleurs de fond clair et un fichier de syntaxe de sorte que le schéma de couleurs auto-highl ights). N'hésitez pas à jeter un oeil à celui-là et voler les fonctions et le format de votre propre jeu de couleurs.