Most filetypes (like python
) in Vim come with a syntax that defines highlight groups (see them via :highlight python<C-d>
). These particular groups (e.g. pythonFunction
) are then linked to a set of default groups (:help highlight-groups
, e.g. Identifier
). A colorscheme then provides combinations of foreground / background color and/or formatting like bold and italic (separately for terminals, color terminals, and/or GVIM) for the default groups.
Plugins are also encouraged to link to existing default groups; after all, these adhere to the user's preferred style and will work under whatever conditions (low-color / high-color terminal / GUI, bright / dark) the user has. However, some plugins either provide functionality that has no existing related concept in Vim, or they need a highlighting that is relatively independent of user choices (like red / green for test results; those should always look red / green even if the user prefers bluish hues).
So what you see is that Lightline plugin not linking to the default groups. That plugin should use :help :highlight-default
, so you can override its custom definitions (with greenish ones) with :highlight LightlineLeft_replace_1 ...
in your ~/.vimrc
(you can always overwrite them later, e.g. on VimEnter
). Yes, that's a lot of definitions there (but apparently mostly combinations of a few base colors and text attributes, and you want just green, anyway), but this needs to be done only once, for this plugin and maybe a few more.
Alternatively, you could employ meta-programming and go over all :hi
definitions after Vim startup (so plugins have added their definitions) and change them to green.
highlight-default
groups. From there, you realized there were other groups that don't get overwritten, and you want to override those? Generally, you have to discover them and overwrite them. I wonder if you could do it programmatically, parsing the output of:hi
or:syn list
– D. Ben Knoble♦ Nov 9 '19 at 15:39getcompletion('', 'highlight')
. But, in general, color schemes should not touch such "user" groups at all. Note, for example, that you'll depend on the load order (color scheme vs. LightLine plugin). – Matt Nov 9 '19 at 15:48