changeset 28862:82244cfc4694

Update runtime files, new color schemes Commit: https://github.com/vim/vim/commit/30ab04e16e1e9e6133590181197b3f8e70cb495e Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 14 13:33:50 2022 +0100 Update runtime files, new color schemes
author Bram Moolenaar <Bram@vim.org>
date Sat, 14 May 2022 14:45:04 +0200
parents d1bc3ca0cd1d
children 92736a673e3c
files .github/CODEOWNERS runtime/colors/README.txt runtime/colors/blue.vim runtime/colors/darkblue.vim runtime/colors/delek.vim runtime/colors/desert.vim runtime/colors/elflord.vim runtime/colors/evening.vim runtime/colors/industry.vim runtime/colors/koehler.vim runtime/colors/morning.vim runtime/colors/murphy.vim runtime/colors/pablo.vim runtime/colors/peachpuff.vim runtime/colors/ron.vim runtime/colors/shine.vim runtime/colors/slate.vim runtime/colors/tools/check_colors.vim runtime/colors/torte.vim runtime/colors/zellner.vim runtime/doc/Makefile runtime/doc/eval.txt runtime/doc/help.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/usr_45.txt runtime/doc/usr_46.txt runtime/doc/usr_50.txt runtime/doc/usr_51.txt runtime/doc/usr_52.txt runtime/doc/usr_90.txt runtime/doc/usr_toc.txt runtime/doc/vim9.txt runtime/syntax/help.vim
diffstat 35 files changed, 7624 insertions(+), 2209 deletions(-) [+]
line wrap: on
line diff
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -19,6 +19,25 @@ runtime/autoload/tar.vim		@cecamp
 runtime/autoload/vimball.vim		@cecamp
 runtime/autoload/xmlformat.vim		@chrisbra
 runtime/autoload/zip.vim		@cecamp
+runtime/colors/blue.vim			@habamax @romainl @neutaaaaan
+runtime/colors/darkblue.vim		@habamax @romainl @neutaaaaan
+runtime/colors/default.vim		@habamax @romainl @neutaaaaan
+runtime/colors/delek.vim		@habamax @romainl @neutaaaaan
+runtime/colors/desert.vim		@habamax @romainl @neutaaaaan
+runtime/colors/elflord.vim		@habamax @romainl @neutaaaaan
+runtime/colors/evening.vim		@habamax @romainl @neutaaaaan
+runtime/colors/industry.vim		@habamax @romainl @neutaaaaan
+runtime/colors/koehler.vim		@habamax @romainl @neutaaaaan
+runtime/colors/morning.vim		@habamax @romainl @neutaaaaan
+runtime/colors/murphy.vim		@habamax @romainl @neutaaaaan
+runtime/colors/pablo.vim		@habamax @romainl @neutaaaaan
+runtime/colors/peachpuff.vim		@habamax @romainl @neutaaaaan
+runtime/colors/ron.vim			@habamax @romainl @neutaaaaan
+runtime/colors/shine.vim		@habamax @romainl @neutaaaaan
+runtime/colors/slate.vim		@habamax @romainl @neutaaaaan
+runtime/colors/tools			@habamax @romainl @neutaaaaan
+runtime/colors/torte.vim		@habamax @romainl @neutaaaaan
+runtime/colors/zellner.vim		@habamax @romainl @neutaaaaan
 runtime/compiler/checkstyle.vim		@dkearns
 runtime/compiler/cm3.vim		@dkearns
 runtime/compiler/cucumber.vim		@tpope
--- a/runtime/colors/README.txt
+++ b/runtime/colors/README.txt
@@ -1,7 +1,7 @@
 README.txt for color scheme files
 
 These files are used for the ":colorscheme" command.  They appear in the
-Edit/Color Scheme menu in the GUI.
+"Edit/Color Scheme" menu in the GUI.
 
 
 Hints for writing a color scheme file:
@@ -9,6 +9,7 @@ Hints for writing a color scheme file:
 There are two basic ways to define a color scheme:
 
 1. Define a new Normal color and set the 'background' option accordingly.
+
 	set background={light or dark}
 	highlight clear
 	highlight Normal ...
@@ -16,6 +17,7 @@ 1. Define a new Normal color and set the
 
 2. Use the default Normal color and automatically adjust to the value of
    'background'.
+
 	highlight clear Normal
 	set background&
 	highlight clear
@@ -28,7 +30,7 @@ 2. Use the default Normal color and auto
 	endif
 
 You can use ":highlight clear" to reset everything to the defaults, and then
-change the groups that you want differently.  This also will work for groups
+change the groups that you want differently.  This will also work for groups
 that are added in later versions of Vim.
 Note that ":highlight clear" uses the value of 'background', thus set it
 before this command.
@@ -38,7 +40,9 @@ attributes.
 
 In case you want to set 'background' depending on the colorscheme selected,
 this autocmd might be useful:
+
      autocmd SourcePre */colors/blue_sky.vim set background=dark
+
 Replace "blue_sky" with the name of the colorscheme.
 
 In case you want to tweak a colorscheme after it was loaded, check out the
@@ -46,6 +50,7 @@ ColorScheme autocommand event.
 
 To clean up just before loading another colorscheme, use the ColorSchemePre
 autocommand event.  For example:
+
 	let g:term_ansi_colors = ...
 	augroup MyColorscheme
 	  au!
@@ -54,20 +59,22 @@ autocommand event.  For example:
 	augroup END
 
 To customize a colorscheme use another name, e.g.  "~/.vim/colors/mine.vim",
-and use `:runtime` to load the original colorscheme:
+and use ":runtime" to load the original colorscheme:
+
 	" load the "evening" colorscheme
 	runtime colors/evening.vim
 	" change the color of statements
 	hi Statement ctermfg=Blue guifg=Blue
 
-To see which highlight group is used where, find the help for
-"highlight-groups" and "group-name".
+To see which highlight group is used where, see ":help highlight-groups" and
+":help group-name".
 
 You can use ":highlight" to find out the current colors.  Exception: the
 ctermfg and ctermbg values are numbers, which are only valid for the current
-terminal.  Use the color names instead.  See ":help cterm-colors".
+terminal.  Use the color names instead for better portability.  See
+":help cterm-colors".
 
-The default color settings can be found in the source file src/highlight.c.
+The default color settings can be found in the source file src/syntax.c.
 Search for "highlight_init".
 
 If you think you have a color scheme that is good enough to be used by others,
@@ -75,17 +82,57 @@ please check the following items:
 
 - Source the $VIMRUNTIME/colors/tools/check_colors.vim script to check for
   common mistakes.
-- Does it work in a color terminal as well as in the GUI?
+
+- Does it work in a color terminal as well as in the GUI? Is it consistent?
+
 - Is "g:colors_name" set to a meaningful value?  In case of doubt you can do
   it this way:
+
   	let g:colors_name = expand('<sfile>:t:r')
+
 - Is 'background' either used or appropriately set to "light" or "dark"?
+
 - Try setting 'hlsearch' and searching for a pattern, is the match easy to
   spot?
+
 - Split a window with ":split" and ":vsplit".  Are the status lines and
   vertical separators clearly visible?
+
 - In the GUI, is it easy to find the cursor, also in a file with lots of
   syntax highlighting?
+
+- In general, test your color scheme against as many filetypes, Vim features,
+  environments, etc. as possible.
+
 - Do not use hard coded escape sequences, these will not work in other
-  terminals.  Always use color names or #RRGGBB for the GUI. See v:colornames
-  for details on how to define your own color names.
+  terminals.  Always use #RRGGBB for the GUI.
+
+- When targetting 8-16 colors terminals, don't count on "darkblue" to be blue
+  and dark, or on "2" to be even vaguely reddish.  Names are more portable
+  than numbers, though.
+
+- When targetting 256 colors terminals, prefer colors 16-255 to colors 0-15
+  for the same reason.
+
+- Typographic attributes (bold, italic, underline, reverse, etc.) are not
+  universally supported.  Don't count on any of them.
+
+- Is "g:terminal_ansi_colors" set to a list of 16 #RRGGBB values?
+
+- Try to keep your color scheme simple by avoiding unnecessary logic and
+  refraining from adding options.  The best color scheme is one that only
+  requires:
+
+  	colorscheme foobar
+
+The color schemes distributed with Vim are built with lifepillar/colortemplate
+(https://github.com/lifepillar/vim-colortemplate).  It is therefore highly
+recommended.
+
+If you would like your color scheme to be distributed with Vim, make sure
+that:
+
+- it satisfies the guidelines above,
+- it was made with colortemplate,
+
+and join us at vim/colorschemes: (https://github.com/vim/colorschemes).
--- a/runtime/colors/blue.vim
+++ b/runtime/colors/blue.vim
@@ -1,55 +1,447 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Steven Vertigan <steven@vertigan.wattle.id.au>
-" Last Change:	2006 Sep 23
-" Revision #5: Switch main text from white to yellow for easier contrast,
-" fixed some problems with terminal backgrounds.
+" Name:         blue
+" Description:  Colorscheme with a blue background
+" Author:       Original author Steven Vertigan <steven@vertigan.wattle.id.au>
+" Maintainer:   Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:33 2022
+
+" Generated by Colortemplate v2.2.0
 
 set background=dark
+
 hi clear
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'blue'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#870000', '#006400', '#878700', '#000087', '#870087', '#008787', '#bcbcbc', '#878787', '#d70000', '#00ff00', '#ffdf00', '#5fafff', '#d787d7', '#5fffff', '#ffffff']
 endif
-let g:colors_name = "blue"
-hi Normal		guifg=yellow	guibg=darkBlue	ctermfg=yellow	ctermbg=darkBlue
-hi NonText		guifg=magenta	ctermfg=lightMagenta
-hi comment		guifg=gray		ctermfg=gray	ctermbg=darkBlue	gui=bold 
-hi constant		guifg=cyan		ctermfg=cyan
-hi identifier	guifg=gray		ctermfg=red
-hi statement	guifg=white		ctermfg=white	ctermbg=darkBlue	gui=none
-hi preproc		guifg=green		ctermfg=green
-hi type			guifg=orange	ctermfg=lightRed	ctermbg=darkBlue
-hi special		guifg=magenta	ctermfg=lightMagenta	ctermbg=darkBlue
-hi Underlined	guifg=cyan		ctermfg=cyan	gui=underline	cterm=underline
-hi label		guifg=yellow	ctermfg=yellow
-hi operator		guifg=orange	gui=bold	ctermfg=lightRed	ctermbg=darkBlue
+hi Normal guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#005faf gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
+hi PmenuSel guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#d787d7 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#870087 gui=NONE cterm=NONE
+hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#005faf gui=NONE cterm=NONE
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffdf00 guibg=#005faf gui=bold cterm=NONE
+hi EndOfBuffer guifg=#ffdf00 guibg=#000087 gui=NONE cterm=NONE
+hi Error guifg=#ff7f50 guibg=#000087 gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#000087 guibg=#878700 gui=NONE cterm=NONE
+hi IncSearch guifg=#d787d7 guibg=#000000 gui=standout cterm=reverse
+hi LineNr guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi ModeMsg guifg=#000087 guibg=#00ff00 gui=NONE cterm=NONE
+hi MoreMsg guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi NonText guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#ffdf00 guibg=#000000 gui=reverse cterm=reverse
+hi SignColumn guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#d70000 guibg=NONE guisp=#d70000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underline
+hi SpellRare guifg=#d787d7 guibg=NONE guisp=#d787d7 gui=undercurl cterm=underline
+hi StatusLine guifg=#000087 guibg=#5fffff gui=NONE cterm=NONE
+hi StatusLineNC guifg=#000087 guibg=#008787 gui=NONE cterm=NONE
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link TabLine StatusLineNC
+hi! link TabLineFill StatusLineNC
+hi! link TabLineSel StatusLine
+hi ToolbarButton guifg=#ffffff guibg=#005faf gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi VertSplit guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE
+hi VisualNOS guifg=#008787 guibg=#ffffff gui=NONE cterm=NONE
+hi WarningMsg guifg=#d70000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000087 guibg=#ffdf00 gui=NONE cterm=NONE
+hi debugBreakpoint guifg=#00ff00 guibg=#000087 gui=reverse cterm=reverse
+hi debugPC guifg=#5fffff guibg=#000087 gui=reverse cterm=reverse
+hi! link Terminal Normal
+hi! link Debug Special
+hi! link diffAdded String
+hi! link diffRemoved WarningMsg
+hi! link diffOnly WarningMsg
+hi! link diffNoEOL WarningMsg
+hi! link diffIsA WarningMsg
+hi! link diffIdentical WarningMsg
+hi! link diffDiffer WarningMsg
+hi! link diffCommon WarningMsg
+hi! link diffBDiffer WarningMsg
+hi! link lCursor Cursor
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Directory guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
+hi Comment guifg=#878787 guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#5fffff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#878787 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#d787d7 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi Type guifg=#ffa500 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=NONE guibg=NONE gui=underline ctermfg=NONE ctermbg=NONE cterm=underline
+hi Label guifg=#ffdf00 guibg=NONE gui=NONE cterm=NONE
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Type
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link Terminal Normal
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
-hi ErrorMsg		guifg=orange	guibg=darkBlue	ctermfg=lightRed
-hi WarningMsg	guifg=cyan		guibg=darkBlue	ctermfg=cyan	gui=bold
-hi ModeMsg		guifg=yellow	gui=NONE	ctermfg=yellow
-hi MoreMsg		guifg=yellow	gui=NONE	ctermfg=yellow
-hi Error		guifg=red		guibg=darkBlue	gui=underline	ctermfg=red
-
-hi Todo			guifg=black		guibg=orange	ctermfg=black	ctermbg=darkYellow
-hi Cursor		guifg=black		guibg=white		ctermfg=black	ctermbg=white
-hi Search		guifg=black		guibg=orange	ctermfg=black	ctermbg=darkYellow
-hi IncSearch	guifg=black		guibg=yellow	ctermfg=black	ctermbg=darkYellow
-hi LineNr		guifg=cyan		ctermfg=cyan
-hi title		guifg=white	gui=bold	cterm=bold
+if s:t_Co >= 256
+  hi Normal ctermfg=220 ctermbg=18 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=25 cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=30 cterm=NONE
+  hi PmenuSel ctermfg=30 ctermbg=231 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=176 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=90 cterm=NONE
+  hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=25 cterm=NONE
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi CursorLineNr ctermfg=220 ctermbg=25 cterm=NONE
+  hi EndOfBuffer ctermfg=220 ctermbg=18 cterm=NONE
+  hi Error ctermfg=209 ctermbg=18 cterm=reverse
+  hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+  hi FoldColumn ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=18 ctermbg=100 cterm=NONE
+  hi IncSearch ctermfg=176 ctermbg=16 cterm=reverse
+  hi LineNr ctermfg=87 ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ModeMsg ctermfg=18 ctermbg=46 cterm=NONE
+  hi MoreMsg ctermfg=87 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=176 ctermbg=NONE cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+  hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=220 ctermbg=16 cterm=reverse
+  hi SignColumn ctermfg=30 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=87 ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=160 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=46 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=231 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=176 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=18 ctermbg=87 cterm=NONE
+  hi StatusLineNC ctermfg=18 ctermbg=30 cterm=NONE
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link TabLine StatusLineNC
+  hi! link TabLineFill StatusLineNC
+  hi! link TabLineSel StatusLine
+  hi ToolbarButton ctermfg=231 ctermbg=25 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=231 ctermbg=30 cterm=NONE
+  hi VisualNOS ctermfg=30 ctermbg=231 cterm=NONE
+  hi WarningMsg ctermfg=160 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
+  hi debugBreakpoint ctermfg=46 ctermbg=18 cterm=reverse
+  hi debugPC ctermfg=87 ctermbg=18 cterm=reverse
+  hi! link Terminal Normal
+  hi! link Debug Special
+  hi! link diffAdded String
+  hi! link diffRemoved WarningMsg
+  hi! link diffOnly WarningMsg
+  hi! link diffNoEOL WarningMsg
+  hi! link diffIsA WarningMsg
+  hi! link diffIdentical WarningMsg
+  hi! link diffDiffer WarningMsg
+  hi! link diffCommon WarningMsg
+  hi! link diffBDiffer WarningMsg
+  hi! link lCursor Cursor
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Directory ctermfg=87 ctermbg=NONE cterm=NONE
+  hi Title ctermfg=176 ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=102 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=87 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=250 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=102 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=176 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=231 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi Type ctermfg=214 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+  hi Label ctermfg=220 ctermbg=NONE cterm=NONE
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi! link Conditional Statement
+  hi! link Define PreProc
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi! link Function Identifier
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Type
+  hi! link PreCondit PreProc
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi! link StorageClass Type
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi! link Typedef Type
+  hi! link Terminal Normal
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-hi StatusLineNC	gui=NONE	guifg=black guibg=blue	ctermfg=black  ctermbg=blue
-hi StatusLine	gui=bold	guifg=cyan	guibg=blue	ctermfg=cyan   ctermbg=blue
-hi VertSplit	gui=none	guifg=blue	guibg=blue	ctermfg=blue	ctermbg=blue
-
-hi Visual		term=reverse		ctermfg=black	ctermbg=darkCyan	guifg=black		guibg=darkCyan
+if s:t_Co >= 16
+  hi Normal ctermfg=yellow ctermbg=darkblue cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi Pmenu ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=white cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=darkmagenta cterm=NONE
+  hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=black ctermbg=green cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=blue cterm=NONE
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi CursorLineNr ctermfg=yellow ctermbg=blue cterm=NONE
+  hi EndOfBuffer ctermfg=yellow ctermbg=darkblue cterm=NONE
+  hi Error ctermfg=red ctermbg=darkblue cterm=reverse
+  hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+  hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=darkyellow cterm=NONE
+  hi IncSearch ctermfg=magenta ctermbg=black cterm=reverse
+  hi LineNr ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ModeMsg ctermfg=darkblue ctermbg=green cterm=NONE
+  hi MoreMsg ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi Search ctermfg=yellow ctermbg=black cterm=reverse
+  hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=white ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=darkblue ctermbg=cyan cterm=NONE
+  hi StatusLineNC ctermfg=darkblue ctermbg=darkcyan cterm=NONE
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link TabLine StatusLineNC
+  hi! link TabLineFill StatusLineNC
+  hi! link TabLineSel StatusLine
+  hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=white ctermbg=darkcyan cterm=NONE
+  hi VisualNOS ctermfg=darkcyan ctermbg=white cterm=NONE
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=darkblue ctermbg=yellow cterm=NONE
+  hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
+  hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
+  hi! link Terminal Normal
+  hi! link Debug Special
+  hi! link diffAdded String
+  hi! link diffRemoved WarningMsg
+  hi! link diffOnly WarningMsg
+  hi! link diffNoEOL WarningMsg
+  hi! link diffIsA WarningMsg
+  hi! link diffIdentical WarningMsg
+  hi! link diffDiffer WarningMsg
+  hi! link diffCommon WarningMsg
+  hi! link diffBDiffer WarningMsg
+  hi! link lCursor Cursor
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=darkgray ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=gray ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=darkgray ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
+  hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=white ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=NONE ctermbg=NONE cterm=underline
+  hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi! link Conditional Statement
+  hi! link Define PreProc
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi! link Function Identifier
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Type
+  hi! link PreCondit PreProc
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi! link StorageClass Type
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi! link Typedef Type
+  hi! link Terminal Normal
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-hi DiffChange	guibg=darkGreen		guifg=black	ctermbg=darkGreen	ctermfg=black
-hi DiffText		guibg=olivedrab		guifg=black		ctermbg=lightGreen	ctermfg=black
-hi DiffAdd		guibg=slateblue		guifg=black		ctermbg=blue		ctermfg=black
-hi DiffDelete   guibg=coral			guifg=black	ctermbg=cyan		ctermfg=black
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-hi Folded		guibg=orange		guifg=black		ctermbg=yellow		ctermfg=black
-hi FoldColumn	guibg=gray30		guifg=black	ctermbg=gray		ctermfg=black
-hi cIf0			guifg=gray			ctermfg=gray
-
+" Background: dark
+" Color: black         #000000           16                black
+" Color: darkred       #870000           88                darkred
+" Color: darkyellow    #878700           100               darkyellow
+" Color: darkblue      #000087           18                darkblue
+" Color: darkmagenta   #870087           90                darkmagenta
+" Color: darkcyan      #008787           30                darkcyan
+" Color: gray          #bcbcbc           250               gray
+" Color: comment       #878787           102               darkgray
+" Color: darkgray      #878787           102               darkgray
+" Color: red           #d70000           160               red
+" Color: green         #00ff00           46                green
+" Color: yellow        #ffdf00           220               yellow
+" Color: blue          #005faf           25                blue
+" Color: magenta       #d787d7           176               magenta
+" Color: cyan          #5fffff           87                cyan
+" Color: white         #ffffff           231               white
+" Color: xtermblue     #5fafff           75                blue
+" Color: xtermdarkblue #0087af           31                darkblue
+" Color: orange        #ffa500           214               darkyellow
+" Color: darkgreen     #006400           22                darkgreen
+" Color: coral         #ff7f50           209               red
+" Color: olivedrab     #6b8e23           64                green
+" Color: slateblue     #6a5acd           62                darkmagenta
+" Term colors: black darkred darkgreen darkyellow darkblue darkmagenta darkcyan gray
+" Term colors: darkgray red green yellow xtermblue magenta cyan white
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/darkblue.vim
+++ b/runtime/colors/darkblue.vim
@@ -1,66 +1,469 @@
-" Vim color file
-" Maintainer:	Bohdan Vlasyuk <bohdan@vstu.edu.ua>
-" Last Change:	2008 Jul 18
+" Name:         darkblue
+" Description:  For those who prefer dark background
+" Author:       Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
+" Maintainer:   Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:33 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
+
+hi clear
+let g:colors_name = 'darkblue'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" darkblue -- for those who prefer dark background
-" [note: looks bit uglier with come terminal palettes,
-" but is fine on default linux console palette.]
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff']
+endif
+hi Normal guifg=#c0c0c0 guibg=#000040 gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ColorColumn guifg=#c0c0c0 guibg=#8b0000 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
+hi! link CursorColumn CursorLine
+hi! link CursorIM Cursor
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff60 guibg=#666666 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ff80ff gui=NONE cterm=NONE
+hi DiffAdd guifg=NONE guibg=#0030ff gui=NONE cterm=NONE
+hi DiffChange guifg=NONE guibg=#404080 gui=NONE cterm=NONE
+hi DiffDelete guifg=#000040 guibg=#008b8b gui=NONE cterm=NONE
+hi DiffText guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi! link EndOfBuffer NonText
+hi Error guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
+hi! link ErrorMsg Error
+hi FoldColumn guifg=#808080 guibg=NONE gui=bold cterm=NONE
+hi Folded guifg=#808080 guibg=NONE gui=bold cterm=NONE
+hi IncSearch guifg=#ffffff guibg=#0030ff gui=reverse cterm=reverse
+hi LineNr guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi MatchParen guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi ModeMsg guifg=#90fff0 guibg=NONE gui=NONE cterm=NONE
+hi MoreMsg guifg=#006400 guibg=NONE gui=NONE cterm=NONE
+hi NonText guifg=#0030ff guibg=NONE gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#0030ff guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#90fff0 guibg=#0030ff gui=NONE cterm=NONE
+hi SignColumn guifg=#808080 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#90f020 guibg=NONE guisp=#90f020 gui=undercurl cterm=underline
+hi SpellLocal guifg=#90fff0 guibg=NONE guisp=#90fff0 gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi StatusLine guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi TabLine guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
+hi! link TabLineFill TabLine
+hi TabLineSel guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#ffffff guibg=#0030ff gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#808080 gui=NONE cterm=NONE
+hi Visual guifg=#8080ff guibg=#ffffff gui=reverse cterm=reverse
+hi VisualNOS guifg=#8080ff guibg=#c0c0c0 gui=reverse,underline cterm=reverse,underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#ffff60 guibg=#000000 gui=NONE cterm=NONE
+hi debugBreakpoint guifg=#90f020 guibg=#00008b gui=reverse cterm=reverse
+hi debugPC guifg=#90fff0 guibg=#00008b gui=reverse cterm=reverse
+hi! link Terminal Normal
+hi! link Debug Special
+hi! link diffAdded String
+hi! link diffRemoved WarningMsg
+hi! link diffOnly WarningMsg
+hi! link diffNoEOL WarningMsg
+hi! link diffIsA WarningMsg
+hi! link diffIdentical WarningMsg
+hi! link diffDiffer WarningMsg
+hi! link diffCommon WarningMsg
+hi! link diffBDiffer WarningMsg
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Directory guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#90fff0 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000040 guibg=#c0c0c0 gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi Type guifg=#90f020 guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Statement
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
-set bg=dark
-hi clear
-if exists("syntax_on")
-	syntax reset
+if s:t_Co >= 256
+  hi Normal ctermfg=252 ctermbg=17 cterm=NONE
+  hi! link Terminal Normal
+  hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ColorColumn ctermfg=252 ctermbg=88 cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=227 cterm=NONE
+  hi! link CursorColumn CursorLine
+  hi! link CursorIM Cursor
+  hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
+  hi CursorLineNr ctermfg=227 ctermbg=59 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=213 cterm=NONE
+  hi DiffAdd ctermfg=NONE ctermbg=27 cterm=NONE
+  hi DiffChange ctermfg=NONE ctermbg=61 cterm=NONE
+  hi DiffDelete ctermfg=17 ctermbg=30 cterm=NONE
+  hi DiffText ctermfg=NONE ctermbg=30 cterm=NONE
+  hi! link EndOfBuffer NonText
+  hi Error ctermfg=217 ctermbg=NONE cterm=reverse
+  hi! link ErrorMsg Error
+  hi FoldColumn ctermfg=102 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=102 ctermbg=NONE cterm=NONE
+  hi IncSearch ctermfg=231 ctermbg=27 cterm=reverse
+  hi LineNr ctermfg=118 ctermbg=NONE cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ModeMsg ctermfg=123 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=22 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=27 ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=27 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=27 ctermbg=231 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+  hi Question ctermfg=118 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=123 ctermbg=27 cterm=NONE
+  hi SignColumn ctermfg=102 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=30 ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=118 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=123 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=17 ctermbg=252 cterm=NONE
+  hi StatusLineNC ctermfg=16 ctermbg=102 cterm=NONE
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi TabLine ctermfg=16 ctermbg=102 cterm=NONE
+  hi! link TabLineFill TabLine
+  hi TabLineSel ctermfg=17 ctermbg=252 cterm=NONE
+  hi ToolbarButton ctermfg=231 ctermbg=27 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=16 ctermbg=102 cterm=NONE
+  hi Visual ctermfg=105 ctermbg=231 cterm=reverse
+  hi VisualNOS ctermfg=105 ctermbg=252 cterm=reverse,underline
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=227 ctermbg=16 cterm=NONE
+  hi debugBreakpoint ctermfg=118 ctermbg=18 cterm=reverse
+  hi debugPC ctermfg=123 ctermbg=18 cterm=reverse
+  hi! link Terminal Normal
+  hi! link Debug Special
+  hi! link diffAdded String
+  hi! link diffRemoved WarningMsg
+  hi! link diffOnly WarningMsg
+  hi! link diffNoEOL WarningMsg
+  hi! link diffIsA WarningMsg
+  hi! link diffIdentical WarningMsg
+  hi! link diffDiffer WarningMsg
+  hi! link diffCommon WarningMsg
+  hi! link diffBDiffer WarningMsg
+  hi! link lCursor Cursor
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=123 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=17 ctermbg=252 cterm=NONE
+  hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi Type ctermfg=118 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi! link Conditional Statement
+  hi! link Define PreProc
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi! link Function Identifier
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Label Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Statement
+  hi! link PreCondit PreProc
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi! link StorageClass Type
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi! link Typedef Type
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
-let colors_name = "darkblue"
-
-hi Normal		guifg=#c0c0c0 guibg=#000040						ctermfg=gray ctermbg=black
-hi ErrorMsg		guifg=#ffffff guibg=#287eff						ctermfg=white ctermbg=lightblue
-hi Visual		guifg=#8080ff guibg=fg		gui=reverse				ctermfg=lightblue ctermbg=fg cterm=reverse
-hi VisualNOS	guifg=#8080ff guibg=fg		gui=reverse,underline	ctermfg=lightblue ctermbg=fg cterm=reverse,underline
-hi Todo			guifg=#d14a14 guibg=#1248d1						ctermfg=red	ctermbg=darkblue
-hi Search		guifg=#90fff0 guibg=#2050d0						ctermfg=white ctermbg=darkblue cterm=underline term=underline
-hi IncSearch	guifg=#b0ffff guibg=#2050d0							ctermfg=darkblue ctermbg=gray
-
-hi SpecialKey		guifg=cyan			ctermfg=darkcyan
-hi Directory		guifg=cyan			ctermfg=cyan
-hi Title			guifg=magenta gui=none ctermfg=magenta cterm=bold
-hi WarningMsg		guifg=red			ctermfg=red
-hi WildMenu			guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none
-hi ModeMsg			guifg=#22cce2		ctermfg=lightblue
-hi MoreMsg			ctermfg=darkgreen	ctermfg=darkgreen
-hi Question			guifg=green gui=none ctermfg=green cterm=none
-hi NonText			guifg=#0030ff		ctermfg=darkblue
-
-hi StatusLine	guifg=blue guibg=darkgray gui=none		ctermfg=blue ctermbg=gray term=none cterm=none
-hi StatusLineNC	guifg=black guibg=darkgray gui=none		ctermfg=black ctermbg=gray term=none cterm=none
-hi VertSplit	guifg=black guibg=darkgray gui=none		ctermfg=black ctermbg=gray term=none cterm=none
+if s:t_Co >= 16
+  hi Normal ctermfg=grey ctermbg=black cterm=NONE
+  hi! link Terminal Normal
+  hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ColorColumn ctermfg=grey ctermbg=darkred cterm=NONE
+  hi Cursor ctermfg=black ctermbg=yellow cterm=NONE
+  hi! link CursorColumn CursorLine
+  hi! link CursorIM Cursor
+  hi CursorLine ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi CursorLineNr ctermfg=yellow ctermbg=darkgrey cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
+  hi DiffAdd ctermfg=NONE ctermbg=blue cterm=NONE
+  hi DiffChange ctermfg=NONE ctermbg=darkblue cterm=NONE
+  hi DiffDelete ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi DiffText ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi! link EndOfBuffer NonText
+  hi Error ctermfg=red ctermbg=NONE cterm=reverse
+  hi! link ErrorMsg Error
+  hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi IncSearch ctermfg=white ctermbg=blue cterm=reverse
+  hi LineNr ctermfg=green ctermbg=NONE cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi MatchParen ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi ModeMsg ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=blue cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=blue ctermbg=white cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi Search ctermfg=cyan ctermbg=blue cterm=NONE
+  hi SignColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
+  hi StatusLineNC ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi TabLine ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi! link TabLineFill TabLine
+  hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
+  hi ToolbarButton ctermfg=white ctermbg=blue cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi Visual ctermfg=blue ctermbg=white cterm=reverse
+  hi VisualNOS ctermfg=blue ctermbg=grey cterm=reverse,underline
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=yellow ctermbg=black cterm=NONE
+  hi debugBreakpoint ctermfg=green ctermbg=darkblue cterm=reverse
+  hi debugPC ctermfg=cyan ctermbg=darkblue cterm=reverse
+  hi! link Terminal Normal
+  hi! link Debug Special
+  hi! link diffAdded String
+  hi! link diffRemoved WarningMsg
+  hi! link diffOnly WarningMsg
+  hi! link diffNoEOL WarningMsg
+  hi! link diffIsA WarningMsg
+  hi! link diffIdentical WarningMsg
+  hi! link diffDiffer WarningMsg
+  hi! link diffCommon WarningMsg
+  hi! link diffBDiffer WarningMsg
+  hi! link lCursor Cursor
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=red ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=black ctermbg=grey cterm=NONE
+  hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi Type ctermfg=green ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi! link Conditional Statement
+  hi! link Define PreProc
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi! link Function Identifier
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Label Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Statement
+  hi! link PreCondit PreProc
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi! link StorageClass Type
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi! link Typedef Type
+  hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi Search ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-hi Folded	guifg=#808080 guibg=#000040			ctermfg=darkgrey ctermbg=black cterm=bold term=bold
-hi FoldColumn	guifg=#808080 guibg=#000040			ctermfg=darkgrey ctermbg=black cterm=bold term=bold
-hi LineNr	guifg=#90f020			ctermfg=green cterm=none
-
-hi DiffAdd	guibg=darkblue	ctermbg=darkblue term=none cterm=none
-hi DiffChange	guibg=darkmagenta ctermbg=magenta cterm=none
-hi DiffDelete	ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan
-hi DiffText	cterm=bold ctermbg=red gui=bold guibg=Red
-
-hi Cursor	guifg=black guibg=yellow ctermfg=black ctermbg=yellow
-hi lCursor	guifg=black guibg=white ctermfg=black ctermbg=white
-
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-hi Comment	guifg=#80a0ff ctermfg=darkred
-hi Constant	ctermfg=magenta guifg=#ffa0a0 cterm=none
-hi Special	ctermfg=brown guifg=Orange cterm=none gui=none
-hi Identifier	ctermfg=cyan guifg=#40ffff cterm=none
-hi Statement	ctermfg=yellow cterm=none guifg=#ffff60 gui=none
-hi PreProc	ctermfg=magenta guifg=#ff80ff gui=none cterm=none
-hi type		ctermfg=green guifg=#60ff60 gui=none cterm=none
-hi Underlined	cterm=underline term=underline
-hi Ignore	guifg=bg ctermfg=bg
-
-" suggested by tigmoid, 2008 Jul 18
-hi Pmenu guifg=#c0c0c0 guibg=#404080
-hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
-hi PmenuSbar guifg=blue guibg=darkgray
-hi PmenuThumb guifg=#c0c0c0
+" Background: dark
+" Color: white         #FFFFFF           231               white
+" Color: black         #000000           16                black
+" Color: diffc         #0087af           31                darkcyan
+" Color: difft         #005f87           24                cyan
+" Color: cursorl       #666666           59                darkgrey
+" Color: ogDeepBlue    #000040           17                black
+" Color: ogDarkBlue    #00008b           18                darkblue
+" Color: ogBlue        #0030ff           27                blue
+" Color: ogLightBlue   #287eff           33                blue
+" Color: ogDarkGrey    #a9a9a9           248               grey
+" Color: ogGrey        #808080           102               darkgrey
+" Color: ogLightGrey   #c0c0c0           252               grey
+" Color: ogDarkViolet  #404080           61                darkblue
+" Color: ogViolet      #8080ff           105               blue
+" Color: ogLightViolet #80a0ff           111               blue
+" Color: ogDarkGreen   #006400           22                darkgreen
+" Color: ogGreen       #90f020           118               green
+" Color: ogDarkCyan    #008b8b           30                darkcyan
+" Color: ogCyan        #90fff0           123               cyan
+" Color: ogLightCyan   #b0ffff           159               cyan
+" Color: ogDarkerRed   #8b0000           88                darkred
+" Color: ogDarkRed     #d14a14           166               darkred
+" Color: ogRed         #ff0000           196               red
+" Color: ogLightRed    #ffa0a0           217               red
+" Color: ogDarkMag     #8b008b           90                darkmagenta
+" Color: ogMagenta     #ff00ff           201               darkmagenta
+" Color: ogLightMag    #ff80ff           213               magenta
+" Color: ogOrange      #ffa500           214               darkyellow
+" Color: ogYellow      #ffff60           227               yellow
+" Term colors: black  ogDarkerRed ogGreen ogOrange ogDarkBlue ogDarkMag ogDarkCyan ogLightGrey
+" Term colors: ogGrey ogLightRed  ogGreen ogYellow ogBlue     ogMagenta    ogCyan     white
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/delek.vim
+++ b/runtime/colors/delek.vim
@@ -1,55 +1,339 @@
-" Vim color file
-" Maintainer:	David Schweikert <david@schweikert.ch>
-" Last Change:	2014 Mar 19
+" Name:         delek
+" Description:  Light background colorscheme.
+" Author:       Original author David Schweikert <david@schweikert.ch>
+" Maintainer:   Original maintainer David Schweikert <david@schweikert.ch>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:34 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=light
 
 hi clear
+let g:colors_name = 'delek'
 
-let g:colors_name = "delek"
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" Normal should come first
-hi Normal     guifg=Black  guibg=White
-hi Cursor     guifg=bg     guibg=fg
-hi lCursor    guifg=NONE   guibg=Cyan
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000']
+endif
+hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#ffff00 guibg=#00008b gui=bold cterm=NONE
+hi StatusLineNC guifg=#ffd700 guibg=#00008b gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#ffff00 guibg=#0000ff gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#e4e4e4 guibg=#0000ff gui=NONE cterm=NONE
+hi VertSplit guifg=#e4e4e4 guibg=#00008b gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#add8e6 gui=NONE cterm=NONE
+hi PmenuSel guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
+hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#ffffff guibg=#bcbcbc gui=bold cterm=NONE
+hi NonText guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#e4e4e4 gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#d0d0d0 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#ee0000 gui=NONE cterm=NONE
+hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#008b8b gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi! link ErrorMsg Error
+hi WarningMsg guifg=#cd00cd guibg=#ffffff gui=NONE cterm=NONE
+hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi Question guifg=#00cd00 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffffff guibg=#ff1493 gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#cd00cd gui=NONE cterm=NONE
+hi IncSearch guifg=#00cd00 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#00008b guibg=#ffd700 gui=bold cterm=NONE
+hi ColorColumn guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#00cd00 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#008b8b guibg=NONE guisp=#008b8b gui=undercurl cterm=underline
+hi SpellLocal guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
+hi SpellRare guifg=#cd00cd guibg=NONE guisp=#cd00cd gui=undercurl cterm=underline
+hi debugBreakpoint guifg=#ffff00 guibg=#0000ff gui=NONE cterm=NONE
+hi debugPC guifg=#ff1493 guibg=#0000ff gui=NONE cterm=NONE
+hi Comment guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#00cd00 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#ff1493 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#ee0000 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi CursorLine guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=16 ctermbg=231 cterm=NONE
+  hi EndOfBuffer ctermfg=250 ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=226 ctermbg=18 cterm=NONE
+  hi StatusLineNC ctermfg=220 ctermbg=18 cterm=NONE
+  hi StatusLineTerm ctermfg=226 ctermbg=21 cterm=NONE
+  hi StatusLineTermNC ctermfg=254 ctermbg=21 cterm=NONE
+  hi VertSplit ctermfg=254 ctermbg=18 cterm=NONE
+  hi Pmenu ctermfg=16 ctermbg=152 cterm=NONE
+  hi PmenuSel ctermfg=231 ctermbg=18 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=30 cterm=NONE
+  hi TabLine ctermfg=16 ctermbg=254 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=250 cterm=NONE
+  hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=254 cterm=NONE
+  hi ToolbarButton ctermfg=231 ctermbg=250 cterm=NONE
+  hi NonText ctermfg=250 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=18 ctermbg=254 cterm=NONE
+  hi Visual ctermfg=16 ctermbg=252 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
+  hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
+  hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=231 ctermbg=30 cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi! link ErrorMsg Error
+  hi WarningMsg ctermfg=164 ctermbg=231 cterm=NONE
+  hi MoreMsg ctermfg=16 ctermbg=231 cterm=NONE
+  hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
+  hi Question ctermfg=40 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=231 ctermbg=198 cterm=NONE
+  hi Search ctermfg=231 ctermbg=164 cterm=NONE
+  hi IncSearch ctermfg=40 ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=18 ctermbg=220 cterm=NONE
+  hi ColorColumn ctermfg=16 ctermbg=254 cterm=NONE
+  hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=40 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=30 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=21 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=164 ctermbg=NONE cterm=underline
+  hi debugBreakpoint ctermfg=226 ctermbg=21 cterm=NONE
+  hi debugPC ctermfg=198 ctermbg=21 cterm=NONE
+  hi Comment ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=40 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=21 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=198 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=164 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" Note: we never set 'term' because the defaults for B&W terminals are OK
-hi DiffAdd    ctermbg=LightBlue    guibg=LightBlue
-hi DiffChange ctermbg=LightMagenta guibg=LightMagenta
-hi DiffDelete ctermfg=Blue	   ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
-hi DiffText   ctermbg=Red	   cterm=bold gui=bold guibg=Red
-hi Directory  ctermfg=DarkBlue	   guifg=Blue
-hi ErrorMsg   ctermfg=White	   ctermbg=DarkRed  guibg=Red	    guifg=White
-hi FoldColumn ctermfg=DarkBlue	   ctermbg=Grey     guibg=Grey	    guifg=DarkBlue
-hi Folded     ctermbg=Grey	   ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi IncSearch  cterm=reverse	   gui=reverse
-hi LineNr     ctermfg=Brown	   guifg=Brown
-hi ModeMsg    cterm=bold	   gui=bold
-hi MoreMsg    ctermfg=DarkGreen    gui=bold guifg=SeaGreen
-hi NonText    ctermfg=Blue	   gui=bold guifg=gray guibg=white
-hi Pmenu      guibg=LightBlue
-hi PmenuSel   ctermfg=White	   ctermbg=DarkBlue  guifg=White  guibg=DarkBlue
-hi Question   ctermfg=DarkGreen    gui=bold guifg=SeaGreen
-if &background == "light"
-    hi Search     ctermfg=NONE	   ctermbg=Yellow guibg=Yellow guifg=NONE
-else
-    hi Search     ctermfg=Black	   ctermbg=Yellow guibg=Yellow guifg=Black
+if s:t_Co >= 16
+  hi Normal ctermfg=black ctermbg=white cterm=NONE
+  hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE
+  hi StatusLineNC ctermfg=darkyellow ctermbg=darkblue cterm=NONE
+  hi StatusLineTerm ctermfg=yellow ctermbg=blue cterm=NONE
+  hi StatusLineTermNC ctermfg=grey ctermbg=blue cterm=NONE
+  hi VertSplit ctermfg=grey ctermbg=darkblue cterm=NONE
+  hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
+  hi PmenuSel ctermfg=white ctermbg=darkblue cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi TabLine ctermfg=black ctermbg=grey cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=grey cterm=NONE
+  hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=grey cterm=NONE
+  hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=darkred cterm=NONE
+  hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=grey cterm=NONE
+  hi CursorLineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=white ctermbg=darkcyan cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi Error ctermfg=red ctermbg=white cterm=reverse
+  hi! link ErrorMsg Error
+  hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+  hi MoreMsg ctermfg=black ctermbg=white cterm=NONE
+  hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+  hi Question ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
+  hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+  hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=darkblue ctermbg=darkyellow cterm=NONE
+  hi ColorColumn ctermfg=black ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=white ctermbg=black cterm=NONE
+  hi lCursor ctermfg=black ctermbg=darkgreen cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
+  hi debugBreakpoint ctermfg=yellow ctermbg=darkblue cterm=NONE
+  hi debugPC ctermfg=magenta ctermbg=darkblue cterm=NONE
+  hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Type ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi Visual ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
 endif
-hi SpecialKey ctermfg=DarkBlue	   guifg=Blue
-hi StatusLine cterm=bold	   ctermbg=blue ctermfg=yellow guibg=gold guifg=blue
-hi StatusLineNC	cterm=bold	   ctermbg=blue ctermfg=black  guibg=gold guifg=blue
-hi Title      ctermfg=DarkMagenta  gui=bold guifg=Magenta
-hi VertSplit  cterm=reverse	   gui=reverse
-hi Visual     ctermbg=NONE	   cterm=reverse gui=reverse guifg=Grey guibg=fg
-hi VisualNOS  cterm=underline,bold gui=underline,bold
-hi WarningMsg ctermfg=DarkRed	   guifg=Red
-hi WildMenu   ctermfg=Black	   ctermbg=Yellow    guibg=Yellow guifg=Black
 
-" syntax highlighting
-hi Comment    cterm=NONE ctermfg=DarkRed     gui=NONE guifg=red2
-hi Constant   cterm=NONE ctermfg=DarkGreen   gui=NONE guifg=green3
-hi Identifier cterm=NONE ctermfg=DarkCyan    gui=NONE guifg=cyan4
-hi PreProc    cterm=NONE ctermfg=DarkMagenta gui=NONE guifg=magenta3
-hi Special    cterm=NONE ctermfg=LightRed    gui=NONE guifg=deeppink
-hi Statement  cterm=bold ctermfg=Blue	     gui=bold guifg=blue
-hi Type	      cterm=NONE ctermfg=Blue	     gui=bold guifg=blue
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-" vim: sw=2
+" Background: light
+" Color: comment     #ee0000        196            darkred
+" Color: constant    #00cd00        40             darkgreen
+" Color: identifier  #008b8b        30             darkcyan
+" Color: statement   #0000ff        21             darkblue
+" Color: preproc     #cd00cd        164            darkmagenta
+" Color: type        #0000ff        21             blue
+" Color: special     #ff1493        198            magenta
+" Color: fg0         #000000        16             black
+" Color: bg0         #ffffff        231            white
+" Color: bg1         #bcbcbc        250            darkgrey
+" Color: visual      #d0d0d0        252            darkgrey
+" Color: folded      #e4e4e4        254            grey
+" Color: pmenu       #add8e6        152            grey
+" Color: wildmenu    #00008b        18             darkblue
+" Color: error       #ff0000        196            red
+" Color: status_fg   #ffd700        220            darkyellow
+" Color: linenr      #a52a2a        124            darkgrey
+" Color: Yellow      #ffff00        226            yellow
+" Color: SlateBlue   #6a5acd        62             blue
+" Term colors: bg0     statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/desert.vim
+++ b/runtime/colors/desert.vim
@@ -1,108 +1,335 @@
-" Vim color file
-" Maintainer:	Hans Fugal <hans@fugal.net>
-" Last Change:	$Date: 2004/06/13 19:30:30 $
-" Last Change:	$Date: 2004/06/13 19:30:30 $
-" URL:		http://hans.fugal.net/vim/colors/desert.vim
-" Version:	$Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
+" Name:         desert
+" Description:  Light background colorscheme.
+" Author:       Original author Hans Fugal <hans@fugal.net>
+" Maintainer:   Original maintainer Hans Fugal <hans@fugal.net>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:35 2022
 
-" cool help screens
-" :he group-name
-" :he highlight-groups
-" :he cterm-colors
+" Generated by Colortemplate v2.2.0
 
 set background=dark
-if version > 580
-    " no guarantees for version 5.8 and below, but this makes it stop
-    " complaining
-    hi clear
-    if exists("syntax_on")
-	syntax reset
-    endif
-endif
-let g:colors_name="desert"
 
-hi Normal	guifg=White guibg=grey20
+hi clear
+let g:colors_name = 'desert'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" highlight groups
-hi Cursor	guibg=khaki guifg=slategrey
-"hi CursorIM
-"hi Directory
-"hi DiffAdd
-"hi DiffChange
-"hi DiffDelete
-"hi DiffText
-"hi ErrorMsg
-hi VertSplit	guibg=#c2bfa5 guifg=grey50 gui=none
-hi Folded	guibg=grey30 guifg=gold
-hi FoldColumn	guibg=grey30 guifg=tan
-hi IncSearch	guifg=slategrey guibg=khaki
-"hi LineNr
-hi ModeMsg	guifg=goldenrod
-hi MoreMsg	guifg=SeaGreen
-hi NonText	guifg=LightBlue guibg=grey30
-hi Question	guifg=springgreen
-hi Search	guibg=peru guifg=wheat
-hi SpecialKey	guifg=yellowgreen
-hi StatusLine	guibg=#c2bfa5 guifg=black gui=none
-hi StatusLineNC	guibg=#c2bfa5 guifg=grey50 gui=none
-hi Title	guifg=indianred
-hi Visual	gui=none guifg=khaki guibg=olivedrab
-"hi VisualNOS
-hi WarningMsg	guifg=salmon
-"hi WildMenu
-"hi Menu
-"hi Scrollbar
-"hi Tooltip
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5']
+endif
+hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
+hi! link EndOfBuffer NonText
+hi StatusLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
+hi StatusLineTermNC guifg=#ffffff guibg=#c2bfa5 gui=NONE cterm=NONE
+hi VertSplit guifg=#7f7f8c guibg=#c2bfa5 gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#666666 gui=NONE cterm=NONE
+hi PmenuSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
+hi TabLine guifg=#333333 guibg=#c2bfa5 gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#c2bfa5 gui=NONE cterm=NONE
+hi TabLineSel guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#333333 guibg=#ffde9b gui=bold cterm=NONE
+hi NonText guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#9acd32 guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
+hi Visual guifg=#f0e68c guibg=#6b8e24 gui=NONE cterm=NONE
+hi VisualNOS guifg=#f0e68c guibg=#6dceeb gui=NONE cterm=NONE
+hi LineNr guifg=#eeee00 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#eeee00 guibg=#4d4d4d gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#eeee00 guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#75a0ff guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ModeMsg guifg=#ffde9b guibg=NONE gui=bold cterm=NONE
+hi WarningMsg guifg=#cd5c5c guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#9acd32 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#89fb98 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#ff0000 guibg=#eeee00 gui=NONE cterm=NONE
+hi MatchParen guifg=#7f7f8c guibg=#bdb76b gui=NONE cterm=NONE
+hi Search guifg=#f0e68c guibg=#7f7f8c gui=NONE cterm=NONE
+hi IncSearch guifg=#f0e68c guibg=#cd853f gui=NONE cterm=NONE
+hi WildMenu guifg=#333333 guibg=#eeee00 gui=NONE cterm=NONE
+hi ColorColumn guifg=#ffffff guibg=#cd5c5c gui=NONE cterm=NONE
+hi Cursor guifg=#333333 guibg=#f0e68c gui=NONE cterm=NONE
+hi lCursor guifg=#333333 guibg=#ff0000 gui=NONE cterm=NONE
+hi debugPC guifg=#666666 guibg=NONE gui=reverse cterm=reverse
+hi debugBreakpoint guifg=#ffa0a0 guibg=NONE gui=reverse cterm=reverse
+hi SpellBad guifg=#cd5c5c guibg=NONE guisp=#cd5c5c gui=undercurl cterm=underline
+hi SpellCap guifg=#75a0ff guibg=NONE guisp=#75a0ff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffde9b guibg=NONE guisp=#ffde9b gui=undercurl cterm=underline
+hi SpellRare guifg=#9acd32 guibg=NONE guisp=#9acd32 gui=undercurl cterm=underline
+hi Comment guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#89fb98 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#f0e68c guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#cd5c5c guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#bdb76b guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#ffde9b guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#6dceeb guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#cd5c5c guibg=NONE gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=231 ctermbg=236 cterm=NONE
+  hi! link EndOfBuffer NonText
+  hi StatusLine ctermfg=236 ctermbg=144 cterm=NONE
+  hi StatusLineNC ctermfg=242 ctermbg=144 cterm=NONE
+  hi StatusLineTerm ctermfg=236 ctermbg=144 cterm=NONE
+  hi StatusLineTermNC ctermfg=231 ctermbg=144 cterm=NONE
+  hi VertSplit ctermfg=242 ctermbg=144 cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=241 cterm=NONE
+  hi PmenuSel ctermfg=236 ctermbg=186 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=144 cterm=NONE
+  hi TabLine ctermfg=236 ctermbg=144 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=144 cterm=NONE
+  hi TabLineSel ctermfg=236 ctermbg=186 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=241 cterm=NONE
+  hi ToolbarButton ctermfg=236 ctermbg=222 cterm=NONE
+  hi NonText ctermfg=81 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=112 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=226 ctermbg=239 cterm=NONE
+  hi Visual ctermfg=186 ctermbg=64 cterm=NONE
+  hi VisualNOS ctermfg=186 ctermbg=81 cterm=NONE
+  hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=226 ctermbg=239 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=241 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=236 ctermbg=186 cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+  hi ModeMsg ctermfg=222 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=167 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=112 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=120 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=196 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=242 ctermbg=143 cterm=NONE
+  hi Search ctermfg=186 ctermbg=242 cterm=NONE
+  hi IncSearch ctermfg=186 ctermbg=172 cterm=NONE
+  hi WildMenu ctermfg=236 ctermbg=226 cterm=NONE
+  hi ColorColumn ctermfg=231 ctermbg=167 cterm=NONE
+  hi debugPC ctermfg=241 ctermbg=NONE cterm=reverse
+  hi debugBreakpoint ctermfg=217 ctermbg=NONE cterm=reverse
+  hi SpellBad ctermfg=167 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=111 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=222 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=112 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=81 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=120 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=186 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=167 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=143 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=222 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=81 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=167 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" syntax highlighting groups
-hi Comment	guifg=SkyBlue
-hi Constant	guifg=#ffa0a0
-hi Identifier	guifg=palegreen
-hi Statement	guifg=khaki
-hi PreProc	guifg=indianred
-hi Type		guifg=darkkhaki
-hi Special	guifg=navajowhite
-"hi Underlined
-hi Ignore	guifg=grey40
-"hi Error
-hi Todo		guifg=orangered guibg=yellow2
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi! link EndOfBuffer NonText
+  hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
+  hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+  hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
+  hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+  hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
+  hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi TabLine ctermfg=black ctermbg=grey cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=white cterm=NONE
+  hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkyellow ctermbg=darkgrey cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=darkblue cterm=NONE
+  hi CursorLineNr ctermfg=darkyellow ctermbg=NONE cterm=underline
+  hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi Error ctermfg=red ctermbg=white cterm=reverse
+  hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
+  hi ModeMsg ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=red ctermbg=darkmagenta cterm=NONE
+  hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi Search ctermfg=black ctermbg=darkgreen cterm=NONE
+  hi IncSearch ctermfg=black ctermbg=yellow cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=darkmagenta cterm=NONE
+  hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi debugPC ctermfg=grey ctermbg=NONE cterm=reverse
+  hi debugBreakpoint ctermfg=cyan ctermbg=NONE cterm=reverse
+  hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=underline
+  hi Comment ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=green ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Type ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" color terminal definitions
-hi SpecialKey	ctermfg=darkgreen
-hi NonText	cterm=bold ctermfg=darkblue
-hi Directory	ctermfg=darkcyan
-hi ErrorMsg	cterm=bold ctermfg=7 ctermbg=1
-hi IncSearch	cterm=NONE ctermfg=yellow ctermbg=green
-hi Search	cterm=NONE ctermfg=grey ctermbg=blue
-hi MoreMsg	ctermfg=darkgreen
-hi ModeMsg	cterm=NONE ctermfg=brown
-hi LineNr	ctermfg=3
-hi Question	ctermfg=green
-hi StatusLine	cterm=bold,reverse
-hi StatusLineNC cterm=reverse
-hi VertSplit	cterm=reverse
-hi Title	ctermfg=5
-hi Visual	cterm=reverse
-hi VisualNOS	cterm=bold,underline
-hi WarningMsg	ctermfg=1
-hi WildMenu	ctermfg=0 ctermbg=3
-hi Folded	ctermfg=darkgrey ctermbg=NONE
-hi FoldColumn	ctermfg=darkgrey ctermbg=NONE
-hi DiffAdd	ctermbg=4
-hi DiffChange	ctermbg=5
-hi DiffDelete	cterm=bold ctermfg=4 ctermbg=6
-hi DiffText	cterm=bold ctermbg=1
-hi Comment	ctermfg=darkcyan
-hi Constant	ctermfg=brown
-hi Special	ctermfg=5
-hi Identifier	ctermfg=6
-hi Statement	ctermfg=3
-hi PreProc	ctermfg=5
-hi Type		ctermfg=2
-hi Underlined	cterm=underline ctermfg=5
-hi Ignore	cterm=bold ctermfg=7
-hi Ignore	ctermfg=darkgrey
-hi Error	cterm=bold ctermfg=7 ctermbg=1
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-
-"vim: sw=4
+" Background: dark
+" Color: foreground  #ffffff        231            white
+" Color: background  #333333        236            black
+" Color: color00     #7f7f8c        242            black
+" Color: color08     #8a7f7f        244            darkgrey
+" Color: color01     #cd5c5c        167            darkred
+" Color: color09     #ff0000        196            red
+" Color: color02     #9acd32        112            darkgreen
+" Color: color10     #89fb98        120            green
+" Color: color03     #bdb76b        143            darkyellow
+" Color: color11     #f0e68c        186            yellow
+" Color: color04     #75a0ff        111            darkblue
+" Color: color12     #6dceeb        81             blue
+" Color: color05     #eeee00        226            darkmagenta
+" Color: color13     #ffde9b        222            magenta
+" Color: color06     #cd853f        172            darkcyan
+" Color: color14     #ffa0a0        217            cyan
+" Color: color07     #666666        241            grey
+" Color: color15     #c2bfa5        144            white
+" Color: color16     #6b8e24        64             darkgreen
+" Color: color17     #4d4d4d        239            grey
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/elflord.vim
+++ b/runtime/colors/elflord.vim
@@ -1,50 +1,375 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2003 May 02
+" Name:         elflord
+" Author:       original author Ron Aaron <ron@ronware.org>
+" Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
+" Website:      https://www.github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:36 2022
+
+" Generated by Colortemplate v2.2.0
 
 set background=dark
+
 hi clear
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'elflord'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+hi! link Terminal Normal
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Repeat
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Number
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link PopupSelected PmenuSel
+hi! link PreCondit PreProc
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
 endif
-let g:colors_name = "elflord"
-hi Normal		guifg=cyan			guibg=black
-hi Comment	term=bold		ctermfg=DarkCyan		guifg=#80a0ff
-hi Constant	term=underline	ctermfg=Magenta		guifg=Magenta
-hi Special	term=bold		ctermfg=DarkMagenta	guifg=Red
-hi Identifier term=underline	cterm=bold			ctermfg=Cyan guifg=#40ffff
-hi Statement term=bold		ctermfg=Yellow gui=bold	guifg=#aa4444
-hi PreProc	term=underline	ctermfg=LightBlue	guifg=#ff80ff
-hi Type	term=underline		ctermfg=LightGreen	guifg=#60ff60 gui=bold
-hi Function	term=bold		ctermfg=White guifg=White
-hi Repeat	term=underline	ctermfg=White		guifg=white
-hi Operator				ctermfg=Red			guifg=Red
-hi Ignore				ctermfg=black		guifg=bg
-hi Error	term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White
-hi Todo	term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
+hi Normal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#2e8b57 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#cd0000 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=underline
+hi Folded guifg=#00ffff guibg=#666666 gui=NONE cterm=NONE
+hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ffff gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=bold cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi IncSearch guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi StatusLine guifg=#000000 guibg=#00ffff gui=bold cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#008b8b gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=NONE
+hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi VertSplit guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi Function guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Operator guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Repeat guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#aa4444 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
+hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=51 ctermbg=16 cterm=NONE
+  hi QuickFixLine ctermfg=231 ctermbg=29 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=160 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=underline
+  hi Folded ctermfg=51 ctermbg=59 cterm=NONE
+  hi Conceal ctermfg=59 ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=51 cterm=NONE
+  hi Directory ctermfg=51 ctermbg=16 cterm=NONE
+  hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
+  hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+  hi FoldColumn ctermfg=51 ctermbg=NONE cterm=NONE
+  hi IncSearch ctermfg=NONE ctermbg=16 cterm=reverse
+  hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=250 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+  hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=16 ctermbg=226 cterm=NONE
+  hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=21 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=226 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=16 ctermbg=51 cterm=NONE
+  hi StatusLineNC ctermfg=16 ctermbg=44 cterm=NONE
+  hi TabLine ctermfg=16 ctermbg=30 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
+  hi TabLineSel ctermfg=51 ctermbg=16 cterm=NONE
+  hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=16 ctermbg=44 cterm=NONE
+  hi Visual ctermfg=16 ctermbg=145 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Error ctermfg=231 ctermbg=196 cterm=NONE
+  hi Function ctermfg=231 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+  hi Operator ctermfg=196 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+  hi Repeat ctermfg=231 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=131 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=21 ctermbg=226 cterm=NONE
+  hi Type ctermfg=83 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" Common groups that link to default highlighting.
-" You can specify other highlighting easily.
-hi link String	Constant
-hi link Character	Constant
-hi link Number	Constant
-hi link Boolean	Constant
-hi link Float		Number
-hi link Conditional	Repeat
-hi link Label		Statement
-hi link Keyword	Statement
-hi link Exception	Statement
-hi link Include	PreProc
-hi link Define	PreProc
-hi link Macro		PreProc
-hi link PreCondit	PreProc
-hi link StorageClass	Type
-hi link Structure	Type
-hi link Typedef	Type
-hi link Tag		Special
-hi link SpecialChar	Special
-hi link Delimiter	Special
-hi link SpecialComment Special
-hi link Debug		Special
+if s:t_Co >= 16
+  hi Normal ctermfg=cyan ctermbg=black cterm=NONE
+  hi QuickFixLine ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi ColorColumn ctermfg=cyan ctermbg=darkred cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=black ctermbg=cyan cterm=NONE
+  hi Directory ctermfg=cyan ctermbg=black cterm=NONE
+  hi EndOfBuffer ctermfg=darkblue ctermbg=black cterm=NONE
+  hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
+  hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi IncSearch ctermfg=NONE ctermbg=black cterm=reverse
+  hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi Search ctermfg=black ctermbg=yellow cterm=NONE
+  hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=yellow ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=black ctermbg=cyan cterm=NONE
+  hi StatusLineNC ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
+  hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
+  hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Error ctermfg=white ctermbg=red cterm=NONE
+  hi Function ctermfg=white ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=black ctermbg=black cterm=NONE
+  hi Operator ctermfg=red ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Repeat ctermfg=white ctermbg=NONE cterm=NONE
+  hi Special ctermfg=red ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
+  hi Type ctermfg=green ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: xterm0         #000000          16                black
+" Color: xterm1         #cd0000          160               darkred
+" Color: xterm2         #00cd00          40                darkgreen
+" Color: xterm3         #cdcd00          184               darkyellow
+" Color: xterm4         #0000ee          20                darkblue
+" Color: xterm5         #cd00cd          164               darkmagenta
+" Color: xterm6         #00cdcd          44                darkcyan
+" Color: xterm7         #e5e5e5          254               grey
+" Color: xterm8         #7f7f7f          102               darkgrey
+" Color: xterm9         #ff0000          196               red
+" Color: xterm10        #00ff00          46                green
+" Color: xterm11        #ffff00          226               yellow
+" Color: xterm12        #5c5cff          63                blue
+" Color: xterm13        #ff00ff          201               magenta
+" Color: xterm14        #00ffff          51                cyan
+" Color: xterm15        #ffffff          231               white
+" Color: Pmenu          #444444          238               darkgrey
+" Color: CursorLine     #3a3a3a          237               darkgrey
+" Color: rgbGrey40      #666666          59                darkgrey
+" Color: rgbDarkGrey    #a9a9a9          145               darkgrey
+" Color: rgbBlue        #0000ff          21                darkblue
+" Color: rgbDarkCyan    #008b8b          30                darkcyan
+" Color: Directory      #00ffff          51                cyan
+" Color: rgbSeaGreen    #2e8b57          29                darkgreen
+" Color: rgbGrey        #bebebe          250               grey
+" Color: Question       #00ff00          46                green
+" Color: SignColumn     #a9a9a9          248               grey
+" Color: SpecialKey     #00ffff          51                cyan
+" Color: Title          #ff00ff          201               magenta
+" Color: WarningMsg     #ff0000          196               red
+" Color: ToolbarLine    #7f7f7f          244               darkgrey
+" Color: Underlined     #80a0ff          111               blue
+" Color: elfComment     #80a0ff          111               blue
+" Color: elfIdentifier  #40ffff          87                cyan
+" Color: elfStatement   #aa4444          131               darkred
+" Color: elfPreProc     #ff80ff          213               magenta
+" Color: elfType        #60ff60          83                green
+" Color: elfBlue        #0000ff          21                blue
+" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
+" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
+" Term colors: xterm14 xterm15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/evening.vim
+++ b/runtime/colors/evening.vim
@@ -1,56 +1,448 @@
-" Vim color file
-" Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2016 Oct 10
+" Name:         evening
+" Description:  This color scheme uses a dark grey background.
+" Author:       Original author Bram Moolenaar <Bram@vim.org>
+" Maintainer:   Original maintainer Steven Vertigan <steven@vertigan.wattle.id.au>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:37 2022
 
-" This color scheme uses a dark grey background.
+" Generated by Colortemplate v2.2.0
+
+set background=dark
+
+hi clear
+let g:colors_name = 'evening'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" First remove all existing highlighting.
-set background=dark
-hi clear
-if exists("syntax_on")
-  syntax reset
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#ffa500', '#2e8b57', '#ffff00', '#006faf', '#8b008b', '#008b8b', '#bebebe', '#4d4d4d', '#ff5f5f', '#00ff00', '#ffff60', '#0087ff', '#ff80ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#ffffff guibg=#333333 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=#666666 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#add8e6 guibg=#4d4d4d gui=NONE cterm=NONE
+hi StatusLine guifg=#333333 guibg=#ffffff gui=bold cterm=NONE
+hi StatusLineNC guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
+hi TabLineSel guifg=#333333 guibg=#ffffff gui=bold cterm=NONE
+hi TabLine guifg=#333333 guibg=#d3d3d3 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#8b008b gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#4d4d4d gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#bebebe gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#d3d3d3 gui=bold cterm=NONE
+hi IncSearch guifg=#00ff00 guibg=NONE gui=reverse cterm=reverse
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=NONE cterm=NONE
+hi NonText guifg=#add8e6 guibg=#4d4d4d gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi SignColumn guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
+hi SpellLocal guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi SpellRare guifg=#ff80ff guibg=NONE guisp=#ff80ff gui=undercurl cterm=underline
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link TabLineFill TabLine
+hi ToolbarButton guifg=NONE guibg=#999999 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi VertSplit guifg=#ffffff guibg=#ffffff gui=NONE cterm=NONE
+hi Visual guifg=#ffffff guibg=#999999 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi debugBreakpoint guifg=#00008b guibg=#ff0000 gui=NONE cterm=NONE
+hi debugPC guifg=#00008b guibg=#0000ff gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link CursorColumn CursorLine
+hi! link CursorIM Cursor
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link Debug Special
+hi! link diffAdded String
+hi! link diffRemoved WarningMsg
+hi! link diffOnly WarningMsg
+hi! link diffNoEOL WarningMsg
+hi! link diffIsA WarningMsg
+hi! link diffIdentical WarningMsg
+hi! link diffDiffer WarningMsg
+hi! link diffCommon WarningMsg
+hi! link diffBDiffer WarningMsg
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#333333 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#ffff00 guibg=#0000ff gui=reverse cterm=reverse
+hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Statement
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=231 ctermbg=236 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=241 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=241 cterm=NONE
+  hi EndOfBuffer ctermfg=153 ctermbg=239 cterm=NONE
+  hi StatusLine ctermfg=236 ctermbg=231 cterm=NONE
+  hi StatusLineNC ctermfg=236 ctermbg=252 cterm=NONE
+  hi TabLineSel ctermfg=236 ctermbg=231 cterm=NONE
+  hi TabLine ctermfg=236 ctermbg=252 cterm=NONE
+  hi QuickFixLine ctermfg=231 ctermbg=90 cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=239 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=250 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+  hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
+  hi FoldColumn ctermfg=153 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+  hi IncSearch ctermfg=46 ctermbg=NONE cterm=reverse
+  hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=153 ctermbg=239 cterm=NONE
+  hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=16 ctermbg=226 cterm=NONE
+  hi SignColumn ctermfg=30 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=46 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=51 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link TabLineFill TabLine
+  hi ToolbarButton ctermfg=NONE ctermbg=246 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=231 ctermbg=231 cterm=NONE
+  hi Visual ctermfg=231 ctermbg=246 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi debugBreakpoint ctermfg=18 ctermbg=196 cterm=NONE
+  hi debugPC ctermfg=18 ctermbg=21 cterm=NONE
+  hi! link Terminal Normal
+  hi! link CursorColumn CursorLine
+  hi! link CursorIM Cursor
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link Debug Special
+  hi! link diffAdded String
+  hi! link diffRemoved WarningMsg
+  hi! link diffOnly WarningMsg
+  hi! link diffNoEOL WarningMsg
+  hi! link diffIsA WarningMsg
+  hi! link diffIdentical WarningMsg
+  hi! link diffDiffer WarningMsg
+  hi! link diffCommon WarningMsg
+  hi! link diffBDiffer WarningMsg
+  hi! link lCursor Cursor
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=236 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=226 ctermbg=21 cterm=reverse
+  hi Type ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi! link Conditional Statement
+  hi! link Define PreProc
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi! link Function Identifier
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Label Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Statement
+  hi! link PreCondit PreProc
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi! link StorageClass Type
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi! link Typedef Type
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
-let colors_name = "evening"
-
-hi Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
+  hi EndOfBuffer ctermfg=lightblue ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=black ctermbg=white cterm=NONE
+  hi StatusLineNC ctermfg=black ctermbg=gray cterm=NONE
+  hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+  hi TabLine ctermfg=black ctermbg=gray cterm=NONE
+  hi QuickFixLine ctermfg=white ctermbg=darkmagenta cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=darkgray cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=gray cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi LineNr ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Cursor ctermfg=black ctermbg=green cterm=NONE
+  hi Error ctermfg=red ctermbg=white cterm=reverse
+  hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+  hi FoldColumn ctermfg=lightblue ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=gray cterm=NONE
+  hi IncSearch ctermfg=green ctermbg=NONE cterm=reverse
+  hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=lightblue ctermbg=darkgray cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkmagenta ctermbg=NONE cterm=underline
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link TabLineFill TabLine
+  hi ToolbarButton ctermfg=NONE ctermbg=darkgray cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=white ctermbg=white cterm=NONE
+  hi Visual ctermfg=white ctermbg=darkgray cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi debugBreakpoint ctermfg=darkblue ctermbg=red cterm=NONE
+  hi debugPC ctermfg=darkblue ctermbg=blue cterm=NONE
+  hi! link Terminal Normal
+  hi! link CursorColumn CursorLine
+  hi! link CursorIM Cursor
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link Debug Special
+  hi! link diffAdded String
+  hi! link diffRemoved WarningMsg
+  hi! link diffOnly WarningMsg
+  hi! link diffNoEOL WarningMsg
+  hi! link diffIsA WarningMsg
+  hi! link diffIdentical WarningMsg
+  hi! link diffDiffer WarningMsg
+  hi! link diffCommon WarningMsg
+  hi! link diffBDiffer WarningMsg
+  hi! link lCursor Cursor
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=lightblue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=gray ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=darkyellow ctermbg=blue cterm=reverse
+  hi Type ctermfg=green ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=lightblue ctermbg=NONE cterm=underline
+  hi! link Boolean Constant
+  hi! link Character Constant
+  hi! link Conditional Statement
+  hi! link Define PreProc
+  hi! link Delimiter Special
+  hi! link Exception Statement
+  hi! link Float Constant
+  hi! link Function Identifier
+  hi! link Include PreProc
+  hi! link Keyword Statement
+  hi! link Label Statement
+  hi! link Macro PreProc
+  hi! link Number Constant
+  hi! link Operator Statement
+  hi! link PreCondit PreProc
+  hi! link Repeat Statement
+  hi! link SpecialChar Special
+  hi! link SpecialComment Special
+  hi! link StorageClass Type
+  hi! link String Constant
+  hi! link Structure Type
+  hi! link Tag Special
+  hi! link Typedef Type
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" Groups used in the 'highlight' and 'guicursor' options default value.
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi ModeMsg term=bold cterm=bold gui=bold
-hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
-hi StatusLineNC term=reverse cterm=reverse gui=reverse
-hi VertSplit term=reverse cterm=reverse gui=reverse
-hi Visual term=reverse ctermbg=black guibg=grey60
-hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
-hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
-hi Cursor guibg=Green guifg=Black
-hi lCursor guibg=Cyan guifg=Black
-hi Directory term=bold ctermfg=LightCyan guifg=Cyan
-hi LineNr term=underline ctermfg=Yellow guifg=Yellow
-hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey30
-hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
-hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan
-hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
-hi WarningMsg term=standout ctermfg=LightRed guifg=Red
-hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
-hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
-hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
-hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
-hi CursorColumn term=reverse ctermbg=Black guibg=grey40
-hi CursorLine term=underline cterm=underline guibg=grey40
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-" Groups for syntax highlighting
-hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
-hi Special term=bold ctermfg=LightRed guifg=Orange
-if &t_Co > 8
-  hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
-endif
-hi Ignore ctermfg=DarkGrey guifg=grey20
-
-" vim: sw=2
+" Background: dark
+" Color: lightmagenta  #ffa0a0           217               magenta
+" Color: blue          #0000ff           21                blue
+" Color: cyan          #00ffff           51                cyan
+" Color: yellow        #ffff00           226               darkyellow
+" Color: white         #ffffff           231               white
+" Color: black         #000000           16                black
+" Color: green         #00ff00           46                green
+" Color: magenta       #ff80ff           201               darkmagenta
+" Color: red           #ff0000           196               red
+" Color: lightyellow   #ffff60           227               yellow
+" Color: darkblue      #00008b           18                darkblue
+" Color: darkcyan      #008b8b           30                darkcyan
+" Color: darkmagenta   #8b008b           90                darkmagenta
+" Color: lightblue     #add8e6           153               lightblue
+" Color: orange        #ffa500           214               darkred
+" Color: seagreen      #2e8b57           29                darkgreen
+" Color: lightgrey     #d3d3d3           252               gray
+" Color: grey          #bebebe           250               gray
+" Color: grey20        #333333           236               gray
+" Color: grey30        #4d4d4d           239               darkgray
+" Color: grey40        #666666           241               darkgray
+" Color: grey60        #999999           246               darkgray
+" Color: xtermblue     #0087ff           33                blue
+" Color: xtermdarkblue #006faf           25                darkblue
+" Color: xtermred      #ff5f5f           203               red
+" Color: comment       #80a0ff           111               lightblue
+" Color: darkred       #8b0000           88                darkred
+" Term colors: black orange seagreen yellow xtermdarkblue darkmagenta darkcyan grey
+" Term colors: grey30 xtermred green lightyellow xtermblue magenta cyan white
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/industry.vim
+++ b/runtime/colors/industry.vim
@@ -1,40 +1,337 @@
-" Vim color file
-" Maintainer:	Shian Lee 
-" Last Change:	2014 Mar 6 (for vim 7.4)
-" Remark:	"industry" stands for 'industrial' color scheme. In industrial
-"		HMI (Human-Machine-Interface) programming, using a standard color
-"               scheme is mandatory in many cases (in traffic-lights for example): 
-"               LIGHT_RED is	    'Warning' 
-"               LIGHT_YELLOW is	    'Attention' 
-"               LIGHT_GREEN is	    'Normal' 
-"               LIGHT_MAGENTA is    'Warning-Attention' (light RED-YELLOW)
-"               LIGHT_CYAN is	    'Attention-Normal'  (light YELLOW-GREEN).
-"               BLACK is	    Dark-High-Contrast Background for maximum safety.
-"               BLUE is		    Shade of BLACK (not supposed to get attention).
-"
-"               Industrial color scheme is by nature clear, safe and productive. 
-"               Yet, depends on the file type's syntax, it might appear incorrect. 
+" Name:         industry
+" Description:  "industry" stands for 'industrial' color scheme.
+" Author:       Original author Shian Lee.
+" Maintainer:   Original maintainer Shian Lee.
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:38 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
+
+hi clear
+let g:colors_name = 'industry'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" Reset to dark background, then reset everything to defaults:
-set background=dark
-highlight clear
-if exists("syntax_on")
-    syntax reset
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#dadada guibg=#000000 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#444444 guibg=#000000 gui=NONE cterm=NONE
+hi StatusLine guifg=#000000 guibg=#dadada gui=bold cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#000000 guibg=#5fd75f gui=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#6c6c6c gui=NONE cterm=NONE
+hi Pmenu guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi TabLine guifg=#dadada guibg=#444444 gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi ToolbarButton guifg=#dadada guibg=#6c6c6c gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi NonText guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=#00afaf guibg=#303030 gui=NONE cterm=NONE
+hi Visual guifg=#dadada guibg=#6c6c6c gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#6c6c6c gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi ColorColumn guifg=NONE guibg=#444444 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE
+hi VisualNOS guifg=#dadada guibg=#6c6c6c gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#87afff guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ModeMsg guifg=#ffffff guibg=NONE gui=bold cterm=NONE
+hi WarningMsg guifg=#870000 guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#5fd75f guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#005fff guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#303030 guibg=#afaf00 gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ff0000 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#005fff guibg=NONE guisp=#005fff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#00ff00 guibg=NONE guisp=#00ff00 gui=undercurl cterm=underline
+hi Comment guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Function guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffffff guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Delimiter guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=#6c6c6c guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=253 ctermbg=16 cterm=NONE
+  hi EndOfBuffer ctermfg=238 ctermbg=16 cterm=NONE
+  hi StatusLine ctermfg=16 ctermbg=253 cterm=NONE
+  hi StatusLineNC ctermfg=16 ctermbg=242 cterm=NONE
+  hi StatusLineTerm ctermfg=16 ctermbg=46 cterm=NONE
+  hi StatusLineTermNC ctermfg=16 ctermbg=77 cterm=NONE
+  hi VertSplit ctermfg=16 ctermbg=242 cterm=NONE
+  hi Pmenu ctermfg=253 ctermbg=238 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=242 cterm=NONE
+  hi TabLine ctermfg=253 ctermbg=238 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=242 cterm=NONE
+  hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
+  hi ToolbarButton ctermfg=253 ctermbg=242 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
+  hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=37 ctermbg=236 cterm=NONE
+  hi Visual ctermfg=253 ctermbg=242 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=242 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=242 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=238 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=201 cterm=NONE
+  hi VisualNOS ctermfg=253 ctermbg=242 cterm=NONE
+  hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=37 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=37 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi Error ctermfg=231 ctermbg=196 cterm=NONE
+  hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
+  hi ModeMsg ctermfg=231 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=88 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=77 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=27 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=236 ctermbg=142 cterm=NONE
+  hi Search ctermfg=16 ctermbg=226 cterm=NONE
+  hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=253 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=196 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=27 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=46 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=37 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Function ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=231 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=226 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Delimiter ctermfg=226 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=242 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
-let colors_name = "industry"
-
-" First set Normal to regular white on black text colors:
-hi Normal ctermfg=LightGray ctermbg=Black guifg=#dddddd	guibg=Black
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi EndOfBuffer ctermfg=darkgrey ctermbg=black cterm=NONE
+  hi StatusLine ctermfg=black ctermbg=white cterm=NONE
+  hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
+  hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
+  hi StatusLineTermNC ctermfg=black ctermbg=darkgreen cterm=NONE
+  hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+  hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
+  hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+  hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+  hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=black ctermbg=grey cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=magenta cterm=NONE
+  hi VisualNOS ctermfg=white ctermbg=grey cterm=NONE
+  hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi Error ctermfg=white ctermbg=red cterm=NONE
+  hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+  hi ModeMsg ctermfg=white ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi Search ctermfg=black ctermbg=yellow cterm=NONE
+  hi IncSearch ctermfg=black ctermbg=green cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi Cursor ctermfg=black ctermbg=white cterm=NONE
+  hi lCursor ctermfg=black ctermbg=red cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=green ctermbg=NONE cterm=underline
+  hi Comment ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Function ctermfg=green ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=white ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Type ctermfg=green ctermbg=NONE cterm=NONE
+  hi Special ctermfg=red ctermbg=NONE cterm=NONE
+  hi Delimiter ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" Syntax highlighting (other color-groups using default, see :help group-name):
-hi Comment    cterm=NONE ctermfg=DarkCyan    	gui=NONE guifg=#00aaaa   	 
-hi Constant   cterm=NONE ctermfg=LightCyan   	gui=NONE guifg=#00ffff   	
-hi Identifier cterm=NONE ctermfg=LightMagenta   gui=NONE guifg=#ff00ff   
-hi Function   cterm=NONE ctermfg=LightGreen   	gui=NONE guifg=#00ff00   	
-hi Statement  cterm=NONE ctermfg=White	     	gui=bold guifg=#ffffff	     	
-hi PreProc    cterm=NONE ctermfg=Yellow		gui=NONE guifg=#ffff00 	
-hi Type	      cterm=NONE ctermfg=LightGreen	gui=bold guifg=#00ff00 		
-hi Special    cterm=NONE ctermfg=LightRed    	gui=NONE guifg=#ff0000    	
-hi Delimiter  cterm=NONE ctermfg=Yellow    	gui=NONE guifg=#ffff00    	
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
+" Background: dark
+" Color: foreground  #dadada        253            white
+" Color: background  #000000        16             black
+" Color: color00     #303030        236            black
+" Color: color08     #444444        238            darkgrey
+" Color: color01     #870000        88             darkred
+" Color: color09     #FF0000        196            red
+" Color: color02     #5FD75F        77             darkgreen
+" Color: color10     #00FF00        46             green
+" Color: color03     #AFAF00        142            darkyellow
+" Color: color11     #FFFF00        226            yellow
+" Color: color04     #87AFFF        111            darkblue
+" Color: color12     #005FFF        27             blue
+" Color: color05     #AF00AF        127            darkmagenta
+" Color: color13     #FF00FF        201            magenta
+" Color: color06     #00AFAF        37             darkcyan
+" Color: color14     #00FFFF        51             cyan
+" Color: color07     #6C6C6C        242            grey
+" Color: color15     #FFFFFF        231            white
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/koehler.vim
+++ b/runtime/colors/koehler.vim
@@ -1,73 +1,360 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2016 Sep 04
+" Name:         koehler
+" Author:       original author Ron Aaron <ron@ronware.org>
+" Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
+" Website:      https://www.github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Thu May 12 18:53:29 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
 
 hi clear
-set background=dark
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'koehler'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+hi! link Terminal Normal
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Number
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link IncSearch Visual
+hi! link Keyword Statement
+hi! link Label Statement
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link Operator Statement
+hi! link PopupSelected PmenuSel
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#8b0000 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#555555 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#555555 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi Folded guifg=#00cdcd guibg=#666666 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi Directory guifg=#cc8000 guibg=NONE gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
+hi ErrorMsg guifg=#cd0000 guibg=#ffffff gui=reverse cterm=reverse
+hi FoldColumn guifg=#00cdcd guibg=NONE gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#0000ff gui=NONE cterm=NONE
+hi ModeMsg guifg=#ffffff guibg=#0000ff gui=bold cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi NonText guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#5c5cff guibg=NONE gui=bold cterm=NONE
+hi Search guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#cd0000 guibg=NONE gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#60ff60 guibg=NONE guisp=#60ff60 gui=undercurl cterm=underline
+hi SpellLocal guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi StatusLine guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
+hi StatusLineNC guifg=#0000ff guibg=#e5e5e5 gui=NONE cterm=NONE
+hi TabLine guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
+hi TabLineFill guifg=#0000ff guibg=#ffffff gui=bold cterm=NONE
+hi TabLineSel guifg=#ffffff guibg=#0000ff gui=bold cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi VertSplit guifg=#0000ff guibg=#e5e5e5 gui=NONE cterm=NONE
+hi Visual guifg=NONE guibg=#666666 gui=reverse cterm=reverse
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Error guifg=#cd0000 guibg=#ffffff gui=reverse cterm=reverse
+hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
+hi Type guifg=#60ff60 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#add8e6 guibg=NONE gui=bold,underline cterm=underline
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=231 ctermbg=16 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=88 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=240 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=240 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=44 ctermbg=59 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
+  hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+  hi Directory ctermfg=172 ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=160 ctermbg=NONE cterm=NONE
+  hi ErrorMsg ctermfg=160 ctermbg=231 cterm=reverse
+  hi FoldColumn ctermfg=44 ctermbg=NONE cterm=NONE
+  hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=21 cterm=NONE
+  hi ModeMsg ctermfg=231 ctermbg=21 cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=160 ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+  hi Question ctermfg=63 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=231 ctermbg=196 cterm=NONE
+  hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=160 ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=83 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=51 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=21 ctermbg=231 cterm=NONE
+  hi StatusLineNC ctermfg=21 ctermbg=254 cterm=NONE
+  hi TabLine ctermfg=21 ctermbg=231 cterm=NONE
+  hi TabLineFill ctermfg=21 ctermbg=231 cterm=NONE
+  hi TabLineSel ctermfg=231 ctermbg=21 cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=21 ctermbg=254 cterm=NONE
+  hi Visual ctermfg=NONE ctermbg=59 cterm=reverse
+  hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+  hi Error ctermfg=160 ctermbg=231 cterm=reverse
+  hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+  hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=21 ctermbg=226 cterm=NONE
+  hi Type ctermfg=83 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=153 ctermbg=NONE cterm=underline
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
-let g:colors_name = "koehler"
-hi Normal		  guifg=white  guibg=black
-hi Scrollbar	  guifg=darkcyan guibg=cyan
-hi Menu			  guifg=black guibg=cyan
-hi SpecialKey	  term=bold  cterm=bold  ctermfg=darkred  guifg=#cc0000
-hi NonText		  term=bold  cterm=bold  ctermfg=darkred  gui=bold      guifg=#cc0000
-hi Directory	  term=bold  cterm=bold  ctermfg=brown  guifg=#cc8000
-hi ErrorMsg		  term=standout  cterm=bold  ctermfg=grey  ctermbg=red  guifg=White  guibg=Red
-hi Search		  term=reverse  ctermfg=white  ctermbg=red      guifg=white  guibg=Red
-hi MoreMsg		  term=bold  cterm=bold  ctermfg=darkgreen	gui=bold  guifg=SeaGreen
-hi ModeMsg		  term=bold  cterm=bold  gui=bold  guifg=White	guibg=Blue
-hi LineNr		  term=underline  cterm=bold  ctermfg=darkcyan	guifg=Yellow
-hi Question		  term=standout  cterm=bold  ctermfg=darkgreen	gui=bold  guifg=Green
-hi StatusLine	  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
-hi StatusLineNC   term=reverse	ctermfg=white ctermbg=lightblue guifg=white guibg=blue
-hi Title		  term=bold  cterm=bold  ctermfg=darkmagenta  gui=bold	guifg=Magenta
-hi Visual		  term=reverse	cterm=reverse  gui=reverse
-hi WarningMsg	  term=standout  cterm=bold  ctermfg=darkred guifg=Red
-hi Cursor		  guifg=bg	guibg=Green
-hi Comment		  term=bold  cterm=bold ctermfg=cyan  guifg=#80a0ff
-hi Constant		  term=underline  cterm=bold ctermfg=magenta  guifg=#ffa0a0
-hi Special		  term=bold  cterm=bold ctermfg=red  guifg=Orange
-hi Identifier	  term=underline   ctermfg=brown  guifg=#40ffff
-hi Statement	  term=bold  cterm=bold ctermfg=yellow	gui=bold  guifg=#ffff60
-hi PreProc		  term=underline  ctermfg=darkmagenta   guifg=#ff80ff
-hi Type			  term=underline  cterm=bold ctermfg=lightgreen  gui=bold  guifg=#60ff60
-hi Error		  term=reverse	ctermfg=darkcyan  ctermbg=black  guifg=Red	guibg=Black
-hi Todo			  term=standout  ctermfg=black	ctermbg=darkcyan  guifg=Blue  guibg=Yellow
-hi CursorLine	  term=underline  guibg=#555555 cterm=underline
-hi CursorColumn	  term=underline  guibg=#555555 cterm=underline
-hi MatchParen	  term=reverse  ctermfg=blue guibg=Blue
-hi TabLine		  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
-hi TabLineFill	  term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
-hi TabLineSel	  term=reverse	ctermfg=white ctermbg=lightblue guifg=white guibg=blue
-hi Underlined	  term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
-hi Ignore		  ctermfg=black ctermbg=black guifg=black guibg=black
-hi EndOfBuffer	  term=bold  cterm=bold  ctermfg=darkred guifg=#cc0000 gui=bold
-hi link IncSearch		Visual
-hi link String			Constant
-hi link Character		Constant
-hi link Number			Constant
-hi link Boolean			Constant
-hi link Float			Number
-hi link Function		Identifier
-hi link Conditional		Statement
-hi link Repeat			Statement
-hi link Label			Statement
-hi link Operator		Statement
-hi link Keyword			Statement
-hi link Exception		Statement
-hi link Include			PreProc
-hi link Define			PreProc
-hi link Macro			PreProc
-hi link PreCondit		PreProc
-hi link StorageClass	Type
-hi link Structure		Type
-hi link Typedef			Type
-hi link Tag				Special
-hi link SpecialChar		Special
-hi link Delimiter		Special
-hi link SpecialComment	Special
-hi link Debug			Special
+
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=black ctermbg=green cterm=NONE
+  hi Directory ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse
+  hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=darkblue cterm=NONE
+  hi ModeMsg ctermfg=white ctermbg=darkblue cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi Question ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Search ctermfg=white ctermbg=red cterm=NONE
+  hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=green ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=cyan ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=darkblue ctermbg=white cterm=NONE
+  hi StatusLineNC ctermfg=darkblue ctermbg=grey cterm=NONE
+  hi TabLine ctermfg=darkblue ctermbg=white cterm=NONE
+  hi TabLineFill ctermfg=darkblue ctermbg=white cterm=NONE
+  hi TabLineSel ctermfg=white ctermbg=darkblue cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi VertSplit ctermfg=darkblue ctermbg=grey cterm=NONE
+  hi Visual ctermfg=NONE ctermbg=darkgrey cterm=reverse
+  hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Error ctermfg=darkred ctermbg=white cterm=reverse
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=black ctermbg=black cterm=NONE
+  hi PreProc ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
+  hi Type ctermfg=green ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: xterm0         #000000          16                black
+" Color: xterm1         #cd0000          160               darkred
+" Color: xterm2         #00cd00          40                darkgreen
+" Color: xterm3         #cdcd00          184               darkyellow
+" Color: xterm4         #0000ee          20                darkblue
+" Color: xterm5         #cd00cd          164               darkmagenta
+" Color: xterm6         #00cdcd          44                darkcyan
+" Color: xterm7         #e5e5e5          254               grey
+" Color: xterm8         #7f7f7f          102               darkgrey
+" Color: xterm9         #ff0000          196               red
+" Color: xterm10        #00ff00          46                green
+" Color: xterm11        #ffff00          226               yellow
+" Color: xterm12        #5c5cff          63                blue
+" Color: xterm13        #ff00ff          201               magenta
+" Color: xterm14        #00ffff          51                cyan
+" Color: xterm15        #ffffff          231               white
+" Color: Pmenu          #444444          238               darkgrey
+" Color: rgbGrey40      #666666          59                darkgrey
+" Color: rgbDarkGrey    #a9a9a9          145               grey
+" Color: rgbDarkBlue    #00008b          20                darkblue
+" Color: rgbDarkMagenta #8b008b          90                darkmagenta
+" Color: rgbBlue        #0000ff          21                darkblue
+" Color: rgbDarkCyan    #008b8b          44                darkcyan
+" Color: rgbSeaGreen    #2e8b57          29                darkgreen
+" Color: rgbGrey        #bebebe          250               grey
+" Color: StatusLineTerm #90ee90          120               darkgreen
+" Color: ToolbarLine    #7f7f7f          244               darkgrey
+" Color: Comment        #80a0ff          111               blue
+" Color: Constant       #ffa0a0          217               darkred
+" Color: Special        #ffa500          214               darkyellow
+" Color: Identifier     #40ffff          87                cyan
+" Color: Statement      #ffff60          227               yellow
+" Color: PreProc        #ff80ff          213               magenta
+" Color: Type           #60ff60          83                green
+" Color: koeDirectory   #cc8000          172               darkyellow
+" Color: koeCursorLine  #555555          240               black
+" Color: koeLightBlue   #ADD8E6          153               blue
+" Color: koeDarkRed     #8b0000          88                darkred
+" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
+" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
+" Term colors: xterm14 xterm15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/morning.vim
+++ b/runtime/colors/morning.vim
@@ -1,56 +1,334 @@
-" Vim color file
-" Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 15
+" Name:         morning
+" Description:  Colorscheme with light grey background.
+" Author:       Original author Bram Moolenaar <Bram@vim.org>
+" Maintainer:   Original maintainer Bram Moolenaar <Bram@vim.org>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Sat May 14 11:15:43 2022
 
-" This color scheme uses a light grey background.
+" Generated by Colortemplate v2.2.0
+
+set background=light
+
+hi clear
+let g:colors_name = 'morning'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" First remove all existing highlighting.
-set background=light
-hi clear
-if exists("syntax_on")
-  syntax reset
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000']
+endif
+hi! link StatuslineTerm Statusline
+hi! link StatuslineTermNC StatuslineNC
+hi Normal guifg=#000000 guibg=#e4e4e4 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=#cccccc gui=bold cterm=NONE
+hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi StatusLine guifg=#eeeeee guibg=#000000 gui=bold cterm=NONE
+hi StatusLineNC guifg=#bcbcbc guibg=#000000 gui=NONE cterm=NONE
+hi VertSplit guifg=#bcbcbc guibg=#000000 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#b2b2b2 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#e4e4e4 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#bcbcbc gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#e4e4e4 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=NONE guibg=#bcbcbc gui=bold cterm=NONE
+hi NonText guifg=#0000ff guibg=#bcbcbc gui=bold cterm=NONE
+hi SpecialKey guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=NONE guibg=#d0d0d0 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#0000ff gui=NONE cterm=NONE
+hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#e4e4e4 gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#e4e4e4 gui=reverse cterm=reverse
+hi WarningMsg guifg=#6a0dad guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#008787 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#e4e4e4 guibg=#6a5acd gui=NONE cterm=NONE
+hi Search guifg=#e4e4e4 guibg=#6a0dad gui=NONE cterm=NONE
+hi IncSearch guifg=#2e8b57 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi ColorColumn guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Cursor guifg=#e4e4e4 guibg=#2e8b57 gui=NONE cterm=NONE
+hi lCursor guifg=#e4e4e4 guibg=#a52a2a gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00d700 guibg=NONE guisp=#00d700 gui=undercurl cterm=underline
+hi SpellLocal guifg=#a52a2a guibg=NONE guisp=#a52a2a gui=undercurl cterm=underline
+hi SpellRare guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underline
+hi Comment guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ff00ff guibg=#eeeeee gui=NONE cterm=NONE
+hi Identifier guifg=#008787 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Directory guifg=#008787 guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Title guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi! link StatuslineTerm Statusline
+  hi! link StatuslineTermNC StatuslineNC
+  hi Normal ctermfg=16 ctermbg=254 cterm=NONE
+  hi EndOfBuffer ctermfg=21 ctermbg=252 cterm=NONE
+  hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=252 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=252 cterm=NONE
+  hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=226 cterm=NONE
+  hi StatusLine ctermfg=255 ctermbg=16 cterm=NONE
+  hi StatusLineNC ctermfg=250 ctermbg=16 cterm=NONE
+  hi VertSplit ctermfg=250 ctermbg=16 cterm=NONE
+  hi Pmenu ctermfg=16 ctermbg=249 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=254 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=16 cterm=NONE
+  hi TabLine ctermfg=16 ctermbg=250 cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=16 ctermbg=254 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=NONE ctermbg=250 cterm=NONE
+  hi NonText ctermfg=21 ctermbg=250 cterm=NONE
+  hi SpecialKey ctermfg=250 ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=NONE ctermbg=252 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=21 cterm=NONE
+  hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=18 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=254 cterm=reverse
+  hi ErrorMsg ctermfg=196 ctermbg=254 cterm=reverse
+  hi WarningMsg ctermfg=55 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi ModeMsg ctermfg=16 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=254 ctermbg=62 cterm=NONE
+  hi Search ctermfg=254 ctermbg=55 cterm=NONE
+  hi IncSearch ctermfg=29 ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi ColorColumn ctermfg=16 ctermbg=231 cterm=NONE
+  hi Cursor ctermfg=254 ctermbg=29 cterm=NONE
+  hi lCursor ctermfg=254 ctermbg=124 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=40 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=124 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=29 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=201 ctermbg=255 cterm=NONE
+  hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=62 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Title ctermfg=124 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
-let colors_name = "morning"
-
-hi Normal ctermfg=Black ctermbg=LightGrey guifg=Black guibg=grey90
+if s:t_Co >= 16
+  hi! link StatuslineTerm Statusline
+  hi! link StatuslineTermNC StatuslineNC
+  hi Normal ctermfg=black ctermbg=grey cterm=NONE
+  hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=underline
+  hi QuickFixLine ctermfg=black ctermbg=yellow cterm=NONE
+  hi StatusLine ctermfg=white ctermbg=black cterm=NONE
+  hi StatusLineNC ctermfg=darkgrey ctermbg=black cterm=NONE
+  hi VertSplit ctermfg=darkgrey ctermbg=black cterm=NONE
+  hi Pmenu ctermfg=black ctermbg=white cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=grey cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=black cterm=NONE
+  hi TabLine ctermfg=black ctermbg=white cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=black ctermbg=grey cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=NONE ctermbg=white cterm=NONE
+  hi NonText ctermfg=blue ctermbg=white cterm=NONE
+  hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=NONE ctermbg=white cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=blue cterm=NONE
+  hi LineNr ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi Error ctermfg=red ctermbg=grey cterm=reverse
+  hi ErrorMsg ctermfg=red ctermbg=grey cterm=reverse
+  hi WarningMsg ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi ModeMsg ctermfg=black ctermbg=NONE cterm=NONE
+  hi Question ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=grey ctermbg=darkblue cterm=NONE
+  hi Search ctermfg=grey ctermbg=darkmagenta cterm=NONE
+  hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi ColorColumn ctermfg=black ctermbg=white cterm=NONE
+  hi Cursor ctermfg=grey ctermbg=darkgreen cterm=NONE
+  hi lCursor ctermfg=grey ctermbg=darkred cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=darkred ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkgreen ctermbg=NONE cterm=underline
+  hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=magenta ctermbg=white cterm=NONE
+  hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" Groups used in the 'highlight' and 'guicursor' options default value.
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi ModeMsg term=bold cterm=bold gui=bold
-hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
-hi StatusLineNC term=reverse cterm=reverse gui=reverse
-hi VertSplit term=reverse cterm=reverse gui=reverse
-hi Visual term=reverse ctermbg=grey guibg=grey80
-hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
-hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
-hi Cursor guibg=Green guifg=NONE
-hi lCursor guibg=Cyan guifg=NONE
-hi Directory term=bold ctermfg=DarkBlue guifg=Blue
-hi LineNr term=underline ctermfg=Brown guifg=Brown
-hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue guibg=grey80
-hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen
-hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE
-hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue
-hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta
-hi WarningMsg term=standout ctermfg=DarkRed guifg=Red
-hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
-hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue
-hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta
-hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan
-hi CursorLine term=underline cterm=underline guibg=grey80
-hi CursorColumn term=reverse ctermbg=grey guibg=grey80
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-" Colors for syntax highlighting
-hi Constant term=underline ctermfg=DarkRed guifg=Magenta guibg=grey95
-hi Special term=bold ctermfg=DarkMagenta guifg=SlateBlue guibg=grey95
-if &t_Co > 8
-  hi Statement term=bold cterm=bold ctermfg=Brown gui=bold guifg=Brown
-endif
-hi Ignore ctermfg=LightGrey guifg=grey90
-
-" vim: sw=2
+" Background: light
+" Color: comment     #0000ff        21             blue
+" Color: constant    #ff00ff        201            magenta
+" Color: identifier  #008787        30             darkcyan
+" Color: statement   #a52a2a        124            darkred
+" Color: preproc     #6a0dad        55             darkmagenta
+" Color: type        #2e8b57        29             darkgreen
+" Color: special     #6a5acd        62             darkblue
+" Color: fg0         #000000        16             black
+" Color: bg0         #e4e4e4        254            grey
+" Color: bg1         #bcbcbc        250            white
+" Color: status      #bcbcbc        250            darkgrey
+" Color: bg2         #eeeeee        255            white
+" Color: endofbuffer #cccccc        252            darkgrey
+" Color: visual      #d0d0d0        252            white
+" Color: folded      #d3d3d3        252            darkgrey
+" Color: folded_fg   #00008b        18             darkblue
+" Color: pmenu       #b2b2b2        249            white
+" Color: wildmenu    #ffff00        226            yellow
+" Color: error       #ff0000        196            red
+" Color: colorcolumn #ffffff        231            white
+" Color: spellcap    #00d700        40             green
+" Term colors: bg0     statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/murphy.vim
+++ b/runtime/colors/murphy.vim
@@ -1,41 +1,335 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2003 May 02
+" Name:         murphy
+" Description:  Green foreground black background.
+" Author:       Original author Ron Aaron <ron@ronware.org>.
+" Maintainer:   Original maintainer Ron Aaron <ron@ronware.org>.
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:41 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
 
 hi clear
-set background=dark
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'murphy'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff']
 endif
-let g:colors_name = "murphy"
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi Normal guifg=#87ff87 guibg=#000000 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=#000000 gui=NONE cterm=NONE
+hi StatusLine guifg=#ffffff guibg=#00008b gui=NONE cterm=NONE
+hi StatusLineNC guifg=#ffffff guibg=#3a3a3a gui=NONE cterm=NONE
+hi VertSplit guifg=#ffffff guibg=#3a3a3a gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#bcbcbc gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi TabLine guifg=#87ff87 guibg=#444444 gui=NONE cterm=NONE
+hi TabLineSel guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#303030 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#ffffff guibg=#444444 gui=bold cterm=NONE
+hi NonText guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi QuickFixLine guifg=#303030 guibg=#00afaf gui=NONE cterm=NONE
+hi Folded guifg=#00afaf guibg=#303030 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#444444 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#444444 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi ColorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
+hi Visual guifg=#ffffff guibg=#005f00 gui=NONE cterm=NONE
+hi VisualNOS guifg=#ffffff guibg=#005f00 gui=NONE cterm=NONE
+hi LineNr guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00afaf guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#00afaf guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi ModeMsg guifg=#87ff87 guibg=NONE gui=bold cterm=NONE
+hi WarningMsg guifg=#ffa700 guibg=NONE gui=bold cterm=NONE
+hi MoreMsg guifg=#005f00 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ffff guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#0000ff guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#303030 guibg=#ffd7af gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#0000ff gui=NONE cterm=NONE
+hi IncSearch guifg=#ffa700 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#87ff87 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ff0000 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffd7af guibg=NONE guisp=#ffd7af gui=undercurl cterm=underline
+hi SpellRare guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi Comment guifg=#ffa700 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ffd7af guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Conceal guifg=#bcbcbc guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi Normal ctermfg=120 ctermbg=16 cterm=NONE
+  hi EndOfBuffer ctermfg=21 ctermbg=16 cterm=NONE
+  hi StatusLine ctermfg=231 ctermbg=18 cterm=NONE
+  hi StatusLineNC ctermfg=231 ctermbg=237 cterm=NONE
+  hi VertSplit ctermfg=231 ctermbg=237 cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=236 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=250 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=236 cterm=NONE
+  hi TabLine ctermfg=120 ctermbg=238 cterm=NONE
+  hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=236 cterm=NONE
+  hi ToolbarButton ctermfg=231 ctermbg=238 cterm=NONE
+  hi NonText ctermfg=37 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=37 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=236 ctermbg=37 cterm=NONE
+  hi Folded ctermfg=37 ctermbg=236 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=238 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=238 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=235 cterm=NONE
+  hi Visual ctermfg=231 ctermbg=22 cterm=NONE
+  hi VisualNOS ctermfg=231 ctermbg=22 cterm=NONE
+  hi LineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=37 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=37 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=37 ctermbg=NONE cterm=underline
+  hi Error ctermfg=231 ctermbg=196 cterm=NONE
+  hi ErrorMsg ctermfg=231 ctermbg=196 cterm=NONE
+  hi ModeMsg ctermfg=120 ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=214 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=22 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=21 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=236 ctermbg=223 cterm=NONE
+  hi Search ctermfg=231 ctermbg=21 cterm=NONE
+  hi IncSearch ctermfg=214 ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=120 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=196 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=51 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=223 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=226 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=214 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=226 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=231 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=223 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=250 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=250 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-hi Normal		ctermbg=Black  ctermfg=lightgreen guibg=Black		 guifg=lightgreen
-hi Comment		term=bold	   ctermfg=LightRed   guifg=Orange
-hi Constant		term=underline ctermfg=LightGreen guifg=White	gui=NONE
-hi Identifier	term=underline ctermfg=LightCyan  guifg=#00ffff
-hi Ignore					   ctermfg=black	  guifg=bg
-hi PreProc		term=underline ctermfg=LightBlue  guifg=Wheat
-hi Search		term=reverse					  guifg=white	guibg=Blue
-hi Special		term=bold	   ctermfg=LightRed   guifg=magenta
-hi Statement	term=bold	   ctermfg=Yellow	  guifg=#ffff00 gui=NONE
-hi Type						   ctermfg=LightGreen guifg=grey	gui=none
-hi Error		term=reverse   ctermbg=Red	  ctermfg=White guibg=Red  guifg=White
-hi Todo			term=standout  ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
-" From the source:
-hi Cursor										  guifg=Orchid	guibg=fg
-hi Directory	term=bold	   ctermfg=LightCyan  guifg=Cyan
-hi ErrorMsg		term=standout  ctermbg=DarkRed	  ctermfg=White guibg=Red guifg=White
-hi IncSearch	term=reverse   cterm=reverse	  gui=reverse
-hi LineNr		term=underline ctermfg=Yellow					guifg=Yellow
-hi ModeMsg		term=bold	   cterm=bold		  gui=bold
-hi MoreMsg		term=bold	   ctermfg=LightGreen gui=bold		guifg=SeaGreen
-hi NonText		term=bold	   ctermfg=Blue		  gui=bold		guifg=Blue
-hi Question		term=standout  ctermfg=LightGreen gui=bold		guifg=Cyan
-hi SpecialKey	term=bold	   ctermfg=LightBlue  guifg=Cyan
-hi StatusLine	term=reverse,bold cterm=reverse   gui=NONE		guifg=White guibg=darkblue
-hi StatusLineNC term=reverse   cterm=reverse	  gui=NONE		guifg=white guibg=#333333
-hi Title		term=bold	   ctermfg=LightMagenta gui=bold	guifg=Pink
-hi WarningMsg	term=standout  ctermfg=LightRed   guifg=Red
-hi Visual		term=reverse   cterm=reverse	  gui=NONE		guifg=white guibg=darkgreen
+if s:t_Co >= 16
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi Normal ctermfg=green ctermbg=black cterm=NONE
+  hi EndOfBuffer ctermfg=blue ctermbg=black cterm=NONE
+  hi StatusLine ctermfg=white ctermbg=darkblue cterm=NONE
+  hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=grey cterm=NONE
+  hi TabLine ctermfg=green ctermbg=darkgrey cterm=NONE
+  hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+  hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi NonText ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi ColorColumn ctermfg=green ctermbg=darkgrey cterm=NONE
+  hi Visual ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi VisualNOS ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi LineNr ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkcyan ctermbg=NONE cterm=underline
+  hi Error ctermfg=white ctermbg=red cterm=NONE
+  hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE
+  hi ModeMsg ctermfg=green ctermbg=NONE cterm=NONE
+  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Question ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=blue ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi Search ctermfg=white ctermbg=blue cterm=NONE
+  hi IncSearch ctermfg=darkred ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi Cursor ctermfg=black ctermbg=green cterm=NONE
+  hi lCursor ctermfg=black ctermbg=red cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=cyan ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=yellow ctermbg=NONE cterm=underline
+  hi Comment ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=white ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Type ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: foreground  #87FF87        120            green
+" Color: background  #000000        16             black
+" Color: color00     #303030        236            black
+" Color: color08     #444444        238            darkgrey
+" Color: color01     #FFA700        214            darkred
+" Color: color09     #FF0000        196            red
+" Color: color02     #005F00        22             darkgreen
+" Color: color10     #00875F        29             green
+" Color: color03     #FFD7AF        223            darkyellow
+" Color: color11     #FFFF00        226            yellow
+" Color: color04     #00008B        18             darkblue
+" Color: color12     #0000FF        21             blue
+" Color: color05     #FFAFAF        217            darkmagenta
+" Color: color13     #FF00FF        201            magenta
+" Color: color06     #00AFAF        37             darkcyan
+" Color: color14     #00FFFF        51             cyan
+" Color: color07     #BCBCBC        250            grey
+" Color: color15     #FFFFFF        231            white
+" Color: color16     #262626        235            black
+" Color: color17     #3A3A3A        237            darkgrey
+" Color: color04t    #87AFFF        111            darkblue
+" Color: color12t    #005FFF        27             blue
+" Term colors: color00 color01 color02 color03 color04t color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12t color13 color14 color15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/pablo.vim
+++ b/runtime/colors/pablo.vim
@@ -1,26 +1,362 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2003 May 02
+" Name:         pablo
+" Author:       Ron Aaron <ron@ronware.org>
+" Maintainer:   Original maintainerRon Aaron <ron@ronware.org>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:41 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
 
 hi clear
-set background=dark
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'pablo'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
 endif
-let g:colors_name = "pablo"
+hi Normal guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi Comment guifg=#808080 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#00c0c0 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#c0c000 guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#00c000 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi Todo guifg=#000000 guibg=#c0c000 gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi Directory guifg=#00c000 guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#c0c000 gui=NONE cterm=NONE
+hi IncSearch guifg=#ffffff guibg=NONE gui=reverse cterm=reverse
+hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=#a9a9a9 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#4d4d4d gui=NONE cterm=NONE
+hi FoldColumn guifg=#7f7f7f guibg=#303030 gui=NONE cterm=NONE
+hi Folded guifg=#7f7f7f guibg=#303030 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#3a3a3a gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=#3a3a3a gui=bold cterm=NONE
+hi Visual guifg=#00008b guibg=#a9a9a9 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi LineNr guifg=#7f7f7f guibg=NONE gui=NONE cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#5c5cff guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#5c5cff guibg=NONE guisp=#5c5cff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi StatusLine guifg=#ffff00 guibg=#0000ee gui=NONE cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi TabLine guifg=#ffffff guibg=#7f7f7f gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi TabLineSel guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi Pmenu guifg=fg guibg=#303030 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=231 ctermbg=16 cterm=NONE
+  hi! link Terminal Normal
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Comment ctermfg=244 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=37 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=142 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=34 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+  hi Error ctermfg=231 ctermbg=196 cterm=NONE
+  hi Todo ctermfg=16 ctermbg=142 cterm=NONE
+  hi Conceal ctermfg=254 ctermbg=248 cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=231 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=231 cterm=NONE
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi Title ctermfg=225 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=34 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=16 ctermbg=142 cterm=NONE
+  hi IncSearch ctermfg=231 ctermbg=NONE cterm=reverse
+  hi NonText ctermfg=63 ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=63 ctermbg=NONE cterm=NONE
+  hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+  hi WarningMsg ctermfg=224 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=51 ctermbg=248 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=239 cterm=NONE
+  hi FoldColumn ctermfg=102 ctermbg=236 cterm=NONE
+  hi Folded ctermfg=102 ctermbg=236 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=237 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=237 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=237 cterm=NONE
+  hi Visual ctermfg=20 ctermbg=248 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+  hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi MatchParen ctermfg=NONE ctermbg=44 cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=63 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=121 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=81 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=63 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=226 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=226 ctermbg=20 cterm=NONE
+  hi StatusLineNC ctermfg=16 ctermbg=231 cterm=NONE
+  hi VertSplit ctermfg=16 ctermbg=231 cterm=NONE
+  hi TabLine ctermfg=231 ctermbg=102 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
+  hi TabLineSel ctermfg=231 ctermbg=16 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
+  hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+  hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=254 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=231 cterm=NONE
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-highlight Comment	 ctermfg=8						  guifg=#808080
-highlight Constant	 ctermfg=14			   cterm=none guifg=#00ffff				  gui=none
-highlight Identifier ctermfg=6						  guifg=#00c0c0
-highlight Statement  ctermfg=3			   cterm=bold guifg=#c0c000				  gui=bold
-highlight PreProc	 ctermfg=10						  guifg=#00ff00
-highlight Type		 ctermfg=2						  guifg=#00c000
-highlight Special	 ctermfg=12						  guifg=#0000ff
-highlight Error					ctermbg=9							guibg=#ff0000
-highlight Todo		 ctermfg=4	ctermbg=3			  guifg=#000080 guibg=#c0c000
-highlight Directory  ctermfg=2						  guifg=#00c000
-highlight StatusLine ctermfg=11 ctermbg=12 cterm=none guifg=#ffff00 guibg=#0000ff gui=none
-highlight Normal									  guifg=#ffffff guibg=#000000
-highlight Search				ctermbg=3							guibg=#c0c000
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi! link Terminal Normal
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=green ctermbg=NONE cterm=NONE
+  hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Special ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkgreen ctermbg=NONE cterm=underline
+  hi Ignore ctermfg=black ctermbg=black cterm=NONE
+  hi Error ctermfg=white ctermbg=red cterm=NONE
+  hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=black ctermbg=white cterm=NONE
+  hi lCursor ctermfg=black ctermbg=white cterm=NONE
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Search ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi IncSearch ctermfg=white ctermbg=NONE cterm=reverse
+  hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+  hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
+  hi WarningMsg ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=cyan ctermbg=black cterm=NONE
+  hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi FoldColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=blue ctermbg=NONE cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi Visual ctermfg=darkblue ctermbg=grey cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+  hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=yellow ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=yellow ctermbg=darkblue cterm=NONE
+  hi StatusLineNC ctermfg=black ctermbg=white cterm=NONE
+  hi VertSplit ctermfg=black ctermbg=white cterm=NONE
+  hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
+  hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+  hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=grey cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=white cterm=NONE
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: color00        #000000     16             black
+" Color: color08        #7f7f7f     102            darkgrey
+" Color: color01        #cd0000     160            darkred
+" Color: color09        #ff0000     196            red
+" Color: color02        #00cd00     40             darkgreen
+" Color: color10        #00ff00     46             green
+" Color: color03        #cdcd00     184            darkyellow
+" Color: color11        #ffff00     226            yellow
+" Color: color04        #0000ee     20             darkblue
+" Color: color12        #5c5cff     63             blue
+" Color: color05        #cd00cd     164            darkmagenta
+" Color: color13        #ff00ff     201            magenta
+" Color: color06        #00cdcd     44             darkcyan
+" Color: color14        #00ffff     51             cyan
+" Color: color07        #e5e5e5     254            grey
+" Color: color15        #ffffff     231            white
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: rgbGrey30      #4d4d4d     239            darkgrey
+" Color: rgbGrey40      #666666     241            darkgrey
+" Color: rgbDarkGrey    #a9a9a9     248            grey
+" Color: rgbDarkBlue    #00008b     20             darkblue
+" Color: rgbDarkMagenta #8b008b     164            darkmagenta
+" Color: rgbBlue        #0000ff     63             blue
+" Color: rgbDarkCyan    #008b8b     44             darkcyan
+" Color: rgbSeaGreen    #2e8b57     121            darkgreen
+" Color: rgbGrey        #bebebe     248            grey
+" Color: Question       #00ff00     121            green
+" Color: SignColumn     #a9a9a9     248            black
+" Color: SpecialKey     #00ffff     81             cyan
+" Color: StatusLineTerm #90ee90     121            darkgreen
+" Color: Title          #ff00ff     225            magenta
+" Color: WarningMsg     #ff0000     224            darkred
+" Color: ToolbarLine    #7f7f7f     242            darkgrey
+" Color: ToolbarButton  #d3d3d3     254            grey
+" Color: Underlined     #80a0ff     111            darkgreen
+" Color: Comment        #808080     244            darkgrey
+" Color: Constant       #00ffff     51             cyan
+" Color: Special        #0000ff     21             blue
+" Color: Identifier     #00c0c0     37             darkcyan
+" Color: Search         #c0c000     142            darkyellow
+" Color: Statement      #c0c000     142            darkyellow
+" Color: Todo           #c0c000     142            darkyellow
+" Color: PreProc        #00ff00     46             green
+" Color: Type           #00c000     34             darkgreen
+" Color: Directory      #00c000     34             darkgreen
+" Color: Pmenu          #303030     236            darkgrey
+" Color: Folded         #303030     236            darkgrey
+" Color: Cursorline     #3a3a3a     237            darkgrey
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/peachpuff.vim
+++ b/runtime/colors/peachpuff.vim
@@ -1,60 +1,335 @@
-" Vim color file
-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2003-04-23
-" URL: http://trific.ath.cx/Ftp/vim/colors/peachpuff.vim
+" Name:         peachpuff
+" Description:  This color scheme uses a peachpuff background (what you've expected when it's " called peachpuff?).
+" Author:       Original author David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+" Maintainer:   Original maintainer David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:43 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=light
+
+hi clear
+let g:colors_name = 'peachpuff'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" This color scheme uses a peachpuff background (what you've expected when it's
-" called peachpuff?).
-"
-" Note: Only GUI colors differ from default, on terminal it's just `light'.
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000']
+endif
+hi Normal guifg=#000000 guibg=#ffdab9 gui=NONE cterm=NONE
+hi Folded guifg=#000000 guibg=#e3c1a5 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#f5c195 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#cd0000 guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ffaf87 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#737373 guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi StatusLineNC guifg=#ffdab9 guibg=#737373 gui=bold cterm=NONE
+hi StatusLineTerm guifg=#ffffff guibg=#2e8b57 gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#ffdab9 guibg=#008b8b gui=bold cterm=NONE
+hi VertSplit guifg=#ffdab9 guibg=#737373 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#ffaf87 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#f5c195 gui=bold cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#ffdab9 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#737373 gui=NONE cterm=NONE
+hi TabLine guifg=#ffdab9 guibg=#737373 gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#ffdab9 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#ffdab9 guibg=#737373 gui=bold cterm=NONE
+hi NonText guifg=#737373 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#737373 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#cccccc gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#406090 gui=NONE cterm=NONE
+hi LineNr guifg=#cd0000 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#406090 guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=bold,reverse cterm=reverse
+hi WarningMsg guifg=#cd00cd guibg=#ffdab9 gui=bold cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=#ffdab9 gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffdab9 gui=bold cterm=NONE
+hi Question guifg=#c00058 guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#6a5acd guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffdab9 guibg=#6a5acd gui=NONE cterm=NONE
+hi Search guifg=#ffdab9 guibg=#cd00cd gui=NONE cterm=NONE
+hi IncSearch guifg=#2e8b57 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
+hi Cursor guifg=#ffdab9 guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#c00058 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#008b8b guibg=NONE guisp=#008b8b gui=undercurl cterm=underline
+hi SpellLocal guifg=#cd00cd guibg=NONE guisp=#cd00cd gui=undercurl cterm=underline
+hi SpellRare guifg=#6a5acd guibg=NONE guisp=#6a5acd gui=undercurl cterm=underline
+hi Comment guifg=#406090 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#c00058 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#cd00cd guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Special guifg=#6a5acd guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#406090 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#cd00cd guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
-" First remove all existing highlighting.
-set background=light
-hi clear
-if exists("syntax_on")
-  syntax reset
+if s:t_Co >= 256
+  hi Normal ctermfg=16 ctermbg=223 cterm=NONE
+  hi Folded ctermfg=16 ctermbg=252 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=180 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=180 cterm=NONE
+  hi CursorLineNr ctermfg=160 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=216 cterm=NONE
+  hi EndOfBuffer ctermfg=243 ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=231 ctermbg=16 cterm=NONE
+  hi StatusLineNC ctermfg=223 ctermbg=243 cterm=NONE
+  hi StatusLineTerm ctermfg=231 ctermbg=29 cterm=NONE
+  hi StatusLineTermNC ctermfg=223 ctermbg=30 cterm=NONE
+  hi VertSplit ctermfg=223 ctermbg=243 cterm=NONE
+  hi Pmenu ctermfg=16 ctermbg=216 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=180 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=223 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=243 cterm=NONE
+  hi TabLine ctermfg=223 ctermbg=243 cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=16 ctermbg=223 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=223 ctermbg=243 cterm=NONE
+  hi NonText ctermfg=243 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=243 ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=16 ctermbg=252 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=25 cterm=NONE
+  hi LineNr ctermfg=160 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=25 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+  hi WarningMsg ctermfg=164 ctermbg=223 cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=223 cterm=NONE
+  hi ModeMsg ctermfg=16 ctermbg=223 cterm=NONE
+  hi Question ctermfg=161 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=62 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=223 ctermbg=62 cterm=NONE
+  hi Search ctermfg=223 ctermbg=164 cterm=NONE
+  hi IncSearch ctermfg=29 ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
+  hi Cursor ctermfg=223 ctermbg=16 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=161 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=30 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=164 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=62 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=25 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=161 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=164 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=62 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=25 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=164 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
-let colors_name = "peachpuff"
-
-hi Normal guibg=PeachPuff guifg=Black
+if s:t_Co >= 16
+  hi Normal ctermfg=black ctermbg=white cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
+  hi QuickFixLine ctermfg=black ctermbg=grey cterm=NONE
+  hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=white ctermbg=black cterm=NONE
+  hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi StatusLineTermNC ctermfg=white ctermbg=darkcyan cterm=NONE
+  hi VertSplit ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi TabLine ctermfg=white ctermbg=darkgrey cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi NonText ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=black ctermbg=grey cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi LineNr ctermfg=red ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi Error ctermfg=darkred ctermbg=white cterm=reverse
+  hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse
+  hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=NONE
+  hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+  hi Question ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=darkblue ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=white ctermbg=darkblue cterm=NONE
+  hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+  hi IncSearch ctermfg=darkgreen ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=white ctermbg=black cterm=NONE
+  hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
+  hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=darkcyan ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=darkmagenta ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-hi SpecialKey term=bold ctermfg=4 guifg=Blue
-hi NonText term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue
-hi Directory term=bold ctermfg=4 guifg=Blue
-hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi Search term=reverse ctermbg=3 guibg=Gold2
-hi MoreMsg term=bold ctermfg=2 gui=bold guifg=SeaGreen
-hi ModeMsg term=bold cterm=bold gui=bold
-hi LineNr term=underline ctermfg=3 guifg=Red3
-hi Question term=standout ctermfg=2 gui=bold guifg=SeaGreen
-hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black
-hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=PeachPuff guibg=Gray45
-hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=Gray45
-hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3
-hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg
-hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline
-hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red
-hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow
-hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5
-hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80
-hi DiffAdd term=bold ctermbg=4 guibg=White
-hi DiffChange term=bold ctermbg=5 guibg=#edb5cd
-hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0
-hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060
-hi Cursor guifg=bg guibg=fg
-hi lCursor guifg=bg guibg=fg
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-" Colors for syntax highlighting
-hi Comment term=bold ctermfg=4 guifg=#406090
-hi Constant term=underline ctermfg=1 guifg=#c00058
-hi Special term=bold ctermfg=5 guifg=SlateBlue
-hi Identifier term=underline ctermfg=6 guifg=DarkCyan
-hi Statement term=bold ctermfg=3 gui=bold guifg=Brown
-hi PreProc term=underline ctermfg=5 guifg=Magenta3
-hi Type term=underline ctermfg=2 gui=bold guifg=SeaGreen
-hi Ignore cterm=bold ctermfg=7 guifg=bg
-hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red
-hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow
-
+" Background: light
+" Color: comment     #406090        25             darkgrey
+" Color: constant    #c00058        161            darkred
+" Color: identifier  #008b8b        30             darkcyan
+" Color: statement   #a52a2a        124            darkred
+" Color: preproc     #cd00cd        164            darkmagenta
+" Color: type        #2e8b57        29             darkgreen
+" Color: special     #6a5acd        62             darkblue
+" Color: fg0         #000000        16             black
+" Color: bg0         #ffdab9        223            white
+" Color: fg1         #ffffff        231            white
+" Color: bg1         #737373        243            darkgrey
+" Color: visual      #cccccc        252            grey
+" Color: folded      #e3c1a5        252            cyan
+" Color: folded_fg   #000000        16             black
+" Color: cursorline  #f5c195        180            yellow
+" Color: pmenu       #ffaf87        216            grey
+" Color: wildmenu    #ffff00        226            yellow
+" Color: error       #ff0000        196            darkred
+" Color: linenr      #cd0000        160            red
+" Color: blue        #0000ff        21             darkblue
+" Color: red         #ff0000        196            darkred
+" Color: colorcolumn #eeeeee        255            grey
+" Term colors: bg0     statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/ron.vim
+++ b/runtime/colors/ron.vim
@@ -1,45 +1,378 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2013 May 24
+" Name:         ron
+" Author:       original author Ron Aaron <ron@ronware.org>
+" Maintainer:   original maintainer Ron Aaron <ron@ronware.org>
+" Website:      https://www.github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:43 2022
+
+" Generated by Colortemplate v2.2.0
 
 set background=dark
+
 hi clear
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'ron'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+hi! link Terminal Normal
+hi! link Boolean Constant
+hi! link Character Constant
+hi! link Conditional Statement
+hi! link Debug Special
+hi! link Define PreProc
+hi! link Delimiter Special
+hi! link Exception Statement
+hi! link Float Constant
+hi! link Function Identifier
+hi! link Include PreProc
+hi! link Keyword Statement
+hi! link Macro PreProc
+hi! link Number Constant
+hi! link PopupSelected PmenuSel
+hi! link PreCondit PreProc
+hi! link Repeat Statement
+hi! link SpecialChar Special
+hi! link SpecialComment Special
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi! link StorageClass Type
+hi! link String Constant
+hi! link Structure Type
+hi! link Tag Special
+hi! link Typedef Type
+hi! link lCursor Cursor
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#cd0000 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#60a060 gui=NONE cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#ffff00 guibg=#303030 gui=NONE cterm=NONE
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi FoldColumn guifg=#ffffff guibg=NONE gui=NONE cterm=NONE
+hi Folded guifg=NONE guibg=#4d4d4d gui=NONE cterm=NONE
+hi IncSearch guifg=NONE guibg=#4682b4 gui=NONE cterm=NONE
+hi LineNr guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi NonText guifg=#ffff00 guibg=#303030 gui=NONE cterm=NONE
+hi Pmenu guifg=#ffffff guibg=#444444 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#00cdcd gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
+hi Question guifg=#00ff00 guibg=#000000 gui=bold cterm=NONE
+hi Search guifg=#000000 guibg=#a9a9a9 gui=bold cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#00ffff guibg=#0000ff gui=bold cterm=NONE
+hi StatusLineNC guifg=#add8e6 guibg=#00008b gui=NONE cterm=NONE
+hi VertSplit guifg=#add8e6 guibg=#00008b gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#008b8b gui=NONE cterm=NONE
+hi TabLineFill guifg=#a9a9a9 guibg=#7f7f7f gui=NONE cterm=NONE
+hi TabLineSel guifg=#00ffff guibg=#000000 gui=bold cterm=NONE
+hi Terminal guifg=#00ffff guibg=#000000 gui=NONE cterm=NONE
+hi Title guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WarningMsg guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#ffffff guibg=NONE guisp=#ffffff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi SpellRare guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi Comment guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#00ffff guibg=NONE gui=bold cterm=NONE
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi Identifier guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Label guifg=#eec900 guibg=NONE gui=NONE cterm=NONE
+hi Operator guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#eea9b8 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffff00 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=#000000 guibg=#ffa500 gui=NONE cterm=NONE
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=51 ctermbg=16 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=160 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=59 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=59 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=44 cterm=NONE
+  hi Conceal ctermfg=254 ctermbg=145 cterm=NONE
+  hi Cursor ctermfg=231 ctermbg=71 cterm=NONE
+  hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=226 ctermbg=236 cterm=NONE
+  hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+  hi FoldColumn ctermfg=231 ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=NONE ctermbg=239 cterm=NONE
+  hi IncSearch ctermfg=NONE ctermbg=67 cterm=NONE
+  hi LineNr ctermfg=145 ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=44 cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=226 ctermbg=236 cterm=NONE
+  hi Pmenu ctermfg=231 ctermbg=238 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=16 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=44 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=254 cterm=NONE
+  hi Question ctermfg=46 ctermbg=16 cterm=NONE
+  hi Search ctermfg=16 ctermbg=145 cterm=NONE
+  hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=51 ctermbg=21 cterm=NONE
+  hi StatusLineNC ctermfg=152 ctermbg=20 cterm=NONE
+  hi VertSplit ctermfg=152 ctermbg=20 cterm=NONE
+  hi TabLine ctermfg=16 ctermbg=44 cterm=NONE
+  hi TabLineFill ctermfg=145 ctermbg=102 cterm=NONE
+  hi TabLineSel ctermfg=51 ctermbg=16 cterm=NONE
+  hi Terminal ctermfg=51 ctermbg=16 cterm=NONE
+  hi Title ctermfg=145 ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+  hi WarningMsg ctermfg=226 ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=231 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=226 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=201 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi Identifier ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+  hi Label ctermfg=220 ctermbg=NONE cterm=NONE
+  hi Operator ctermfg=214 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=217 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=226 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=152 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=16 ctermbg=214 cterm=NONE
+  hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
-let g:colors_name = "ron"
-hi Normal		guifg=cyan	guibg=black
-hi NonText		guifg=yellow guibg=#303030
-hi comment		guifg=green
-hi constant		guifg=cyan	gui=bold
-hi identifier	guifg=cyan	gui=NONE
-hi statement	guifg=lightblue	gui=NONE
-hi preproc		guifg=Pink2
-hi type			guifg=seagreen	gui=bold
-hi special		guifg=yellow
-hi ErrorMsg		guifg=Black	guibg=Red
-hi WarningMsg	guifg=Black	guibg=Green
-hi Error		guibg=Red
-hi Todo			guifg=Black	guibg=orange
-hi Cursor		guibg=#60a060 guifg=#00ff00
-hi Search		guibg=darkgray guifg=black gui=bold 
-hi IncSearch	gui=NONE guibg=steelblue
-hi LineNr		guifg=darkgrey
-hi title		guifg=darkgrey
-hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black  gui=bold
-hi StatusLineNC	gui=NONE guifg=lightblue guibg=darkblue
-hi StatusLine	gui=bold	guifg=cyan	guibg=blue
-hi label		guifg=gold2
-hi operator		guifg=orange
-hi clear Visual
-hi Visual		term=reverse cterm=reverse gui=reverse
-hi DiffChange   guibg=darkgreen
-hi DiffText		guibg=olivedrab
-hi DiffAdd		guibg=slateblue
-hi DiffDelete   guibg=coral
-hi Folded		guibg=gray30
-hi FoldColumn	guibg=gray30 guifg=white
-hi cIf0			guifg=gray
-hi diffOnly	guifg=red gui=bold
+
+if s:t_Co >= 16
+  hi Normal ctermfg=cyan ctermbg=black cterm=NONE
+  hi ColorColumn ctermfg=cyan ctermbg=darkred cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi QuickFixLine ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=white ctermbg=green cterm=NONE
+  hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=yellow ctermbg=darkgrey cterm=NONE
+  hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
+  hi FoldColumn ctermfg=white ctermbg=NONE cterm=NONE
+  hi Folded ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi IncSearch ctermfg=NONE ctermbg=blue cterm=NONE
+  hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi NonText ctermfg=yellow ctermbg=darkgrey cterm=NONE
+  hi Pmenu ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+  hi Question ctermfg=green ctermbg=black cterm=NONE
+  hi Search ctermfg=black ctermbg=grey cterm=NONE
+  hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=cyan ctermbg=darkblue cterm=NONE
+  hi StatusLineNC ctermfg=darkcyan ctermbg=darkblue cterm=NONE
+  hi VertSplit ctermfg=darkcyan ctermbg=darkblue cterm=NONE
+  hi TabLine ctermfg=black ctermbg=darkcyan cterm=NONE
+  hi TabLineFill ctermfg=grey ctermbg=darkgrey cterm=NONE
+  hi TabLineSel ctermfg=cyan ctermbg=black cterm=NONE
+  hi Terminal ctermfg=cyan ctermbg=black cterm=NONE
+  hi Title ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+  hi WarningMsg ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=white ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=yellow ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=magenta ctermbg=NONE cterm=underline
+  hi Comment ctermfg=green ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Error ctermfg=red ctermbg=white cterm=reverse
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=black ctermbg=black cterm=NONE
+  hi Label ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Operator ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Special ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: xterm0         #000000          16                black
+" Color: xterm1         #cd0000          160               darkred
+" Color: xterm2         #00cd00          40                darkgreen
+" Color: xterm3         #cdcd00          184               darkyellow
+" Color: xterm4         #0000ee          20                darkblue
+" Color: xterm5         #cd00cd          164               darkmagenta
+" Color: xterm6         #00cdcd          44                darkcyan
+" Color: xterm7         #e5e5e5          254               grey
+" Color: xterm8         #7f7f7f          102               darkgrey
+" Color: xterm9         #ff0000          196               red
+" Color: xterm10        #00ff00          46                green
+" Color: xterm11        #ffff00          226               yellow
+" Color: xterm12        #5c5cff          63                blue
+" Color: xterm13        #ff00ff          201               magenta
+" Color: xterm14        #00ffff          51                cyan
+" Color: xterm15        #ffffff          231               white
+" Color: rgbGrey40      #666666          59                darkgrey
+" Color: rgbDarkGrey    #a9a9a9          145               grey
+" Color: rgbDarkBlue    #00008b          20                darkblue
+" Color: rgbBlue        #0000ff          21                darkblue
+" Color: rgbDarkCyan    #008b8b          44                darkcyan
+" Color: Directory      #00ffff          51                cyan
+" Color: rgbSeaGreen    #2e8b57          29                darkgreen
+" Color: rgbGrey        #bebebe          250               grey
+" Color: Question       #00ff00          46                green
+" Color: SignColumn     #a9a9a9          248               grey
+" Color: SpecialKey     #00ffff          51                cyan
+" Color: StatusLineTerm #90ee90          120               darkgreen
+" Color: ToolbarLine    #7f7f7f          244               darkgrey
+" Color: Underlined     #80a0ff          111               blue
+" Color: Pmenu          #444444          238               darkgrey
+" Color: ron303030      #303030          236               darkgrey
+" Color: ronLightBlue   #add8e6          152               darkcyan
+" Color: ronPink2       #eea9b8          217               darkmagenta
+" Color: ronOrange      #ffa500          214               darkyellow
+" Color: ronCursor      #60a060          71                green
+" Color: ronSteelBlue   #4682b4          67                blue
+" Color: ronGold2       #eec900          220               yellow
+" Color: ronDarkGreen   #006400          22                darkgreen
+" Color: ronSlateBlue   #6a5acd          62                blue
+" Color: ronOliveDrab   #6b8e23          64                green
+" Color: ronCoral       #ff7f50          209               red
+" Color: ronGray30      #4d4d4d          239               darkgrey
+" Term colors: xterm0 xterm1 xterm2 xterm3 xterm4 xterm5 xterm6 xterm7
+" Term colors: xterm8 xterm9 xterm10 xterm11 xterm12 xterm13
+" Term colors: xterm14 xterm15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/shine.vim
+++ b/runtime/colors/shine.vim
@@ -1,60 +1,353 @@
-" Vim color file
-" Maintainer:	Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
-" Last Change:	2001 May 25
+" Name:         shine
+" Description:  Light colorscheme inspired by normal text editors.
+" Author:       Original author is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
+" Maintainer:   Original maintainer is Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:44 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=light
+
+hi clear
+let g:colors_name = 'shine'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" This look like normal text editor.
-" This color scheme uses a light background.
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#8b0000', '#006400', '#ffff00', '#00008b', '#6a0dad', '#008b8b', '#dadada', '#767676', '#ffafaf', '#90ee90', '#ffff60', '#add8e6', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#dadada gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#dadada gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#dadada gui=NONE cterm=NONE
+hi CursorLineNr guifg=NONE guibg=#dadada gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#ff8c00 gui=NONE cterm=NONE
+hi! link EndOfBuffer NonText
+hi StatusLine guifg=#ffffff guibg=#000000 gui=bold cterm=NONE
+hi StatusLineNC guifg=#ffffff guibg=#a8a8a8 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#000000 guibg=#90ee90 gui=bold cterm=NONE
+hi StatusLineTermNC guifg=#dadada guibg=#006400 gui=NONE cterm=NONE
+hi VertSplit guifg=#a8a8a8 guibg=#a8a8a8 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#a8a8a8 gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff60 gui=NONE cterm=NONE
+hi PmenuSbar guifg=#ffffff guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=#767676 guibg=#767676 gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#dadada gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=NONE guibg=#a8a8a8 gui=bold cterm=NONE
+hi NonText guifg=#add8e6 guibg=#ffffff gui=NONE cterm=NONE
+hi SpecialKey guifg=#add8e6 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#a8a8a8 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=NONE gui=bold,underline ctermfg=NONE ctermbg=NONE cterm=underline
+hi LineNr guifg=#767676 guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#767676 guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a0dad guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi! link ErrorMsg Error
+hi WarningMsg guifg=#6a0dad guibg=#ffffff gui=NONE cterm=NONE
+hi MoreMsg guifg=#006400 guibg=#ffffff gui=NONE cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Question guifg=#a07070 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffffff guibg=#ffafaf gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#6a0dad gui=NONE cterm=NONE
+hi IncSearch guifg=#008b8b guibg=#ffff00 gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=bold cterm=NONE
+hi ColorColumn guifg=#000000 guibg=#ffafaf gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#a07070 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#2e8b57 guibg=NONE guisp=#2e8b57 gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#00008b guibg=NONE guisp=#00008b gui=undercurl cterm=underline
+hi Identifier guifg=#008b8b guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#006400 guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#a07070 guibg=NONE gui=NONE cterm=NONE
+hi Number guifg=#a07070 guibg=NONE gui=bold cterm=NONE
+hi Float guifg=#a07070 guibg=NONE gui=bold cterm=NONE
+hi PreProc guifg=#6a0dad guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff8c00 guibg=NONE gui=NONE cterm=NONE
+hi SpecialChar guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi! link Tag Special
+hi Type guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi! link Operator Statement
+hi Directory guifg=#008b8b guibg=NONE gui=bold cterm=NONE
+hi Comment guifg=#a8a8a8 guibg=NONE gui=bold cterm=NONE
+hi StorageClass guifg=#ff0000 guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#dadada guibg=#767676 gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#006400 guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
-" First remove all existing highlighting.
-set background=light
-hi clear
-if exists("syntax_on")
-  syntax reset
+if s:t_Co >= 256
+  hi Normal ctermfg=16 ctermbg=231 cterm=NONE
+  hi Folded ctermfg=18 ctermbg=253 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=253 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=253 cterm=NONE
+  hi CursorLineNr ctermfg=NONE ctermbg=253 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=208 cterm=NONE
+  hi! link EndOfBuffer NonText
+  hi StatusLine ctermfg=231 ctermbg=16 cterm=NONE
+  hi StatusLineNC ctermfg=231 ctermbg=248 cterm=NONE
+  hi StatusLineTerm ctermfg=16 ctermbg=120 cterm=NONE
+  hi StatusLineTermNC ctermfg=253 ctermbg=22 cterm=NONE
+  hi VertSplit ctermfg=248 ctermbg=248 cterm=NONE
+  hi Pmenu ctermfg=16 ctermbg=248 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=228 cterm=NONE
+  hi PmenuSbar ctermfg=231 ctermbg=231 cterm=NONE
+  hi PmenuThumb ctermfg=243 ctermbg=243 cterm=NONE
+  hi TabLine ctermfg=16 ctermbg=253 cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
+  hi NonText ctermfg=153 ctermbg=231 cterm=NONE
+  hi SpecialKey ctermfg=153 ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=16 ctermbg=248 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+  hi LineNr ctermfg=243 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=243 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=55 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi! link ErrorMsg Error
+  hi WarningMsg ctermfg=55 ctermbg=231 cterm=NONE
+  hi MoreMsg ctermfg=22 ctermbg=231 cterm=NONE
+  hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
+  hi Question ctermfg=95 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=231 ctermbg=217 cterm=NONE
+  hi Search ctermfg=231 ctermbg=55 cterm=NONE
+  hi IncSearch ctermfg=30 ctermbg=226 cterm=reverse
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi ColorColumn ctermfg=16 ctermbg=217 cterm=NONE
+  hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=95 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=29 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=18 ctermbg=NONE cterm=underline
+  hi Identifier ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=22 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=95 ctermbg=NONE cterm=NONE
+  hi Number ctermfg=95 ctermbg=NONE cterm=NONE
+  hi Float ctermfg=95 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=55 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=208 ctermbg=NONE cterm=NONE
+  hi SpecialChar ctermfg=18 ctermbg=NONE cterm=NONE
+  hi! link Tag Special
+  hi Type ctermfg=29 ctermbg=NONE cterm=NONE
+  hi! link Operator Statement
+  hi Directory ctermfg=30 ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=248 ctermbg=NONE cterm=NONE
+  hi StorageClass ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=253 ctermbg=243 cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=22 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
-let colors_name = "shine"
-
-hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White
+if s:t_Co >= 16
+  hi Normal ctermfg=black ctermbg=white cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=NONE ctermbg=NONE cterm=underline
+  hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi! link EndOfBuffer NonText
+  hi StatusLine ctermfg=white ctermbg=black cterm=NONE
+  hi StatusLineNC ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi StatusLineTerm ctermfg=black ctermbg=green cterm=NONE
+  hi StatusLineTermNC ctermfg=grey ctermbg=darkgreen cterm=NONE
+  hi VertSplit ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
+  hi Pmenu ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=white ctermbg=white cterm=NONE
+  hi PmenuThumb ctermfg=darkgrey ctermbg=darkgrey cterm=NONE
+  hi TabLine ctermfg=black ctermbg=grey cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi NonText ctermfg=blue ctermbg=white cterm=NONE
+  hi SpecialKey ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=black ctermbg=darkgrey cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=NONE cterm=underline
+  hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=darkmagenta ctermbg=NONE cterm=underline
+  hi Error ctermfg=red ctermbg=white cterm=reverse
+  hi! link ErrorMsg Error
+  hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=white cterm=NONE
+  hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+  hi Question ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=white ctermbg=red cterm=NONE
+  hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+  hi IncSearch ctermfg=darkcyan ctermbg=yellow cterm=reverse
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi ColorColumn ctermfg=black ctermbg=red cterm=NONE
+  hi Cursor ctermfg=white ctermbg=black cterm=NONE
+  hi lCursor ctermfg=black ctermbg=darkred cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=darkgreen ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkblue ctermbg=NONE cterm=underline
+  hi Identifier ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Number ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Float ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi SpecialChar ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi! link Tag Special
+  hi Type ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi! link Operator Statement
+  hi Directory ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi StorageClass ctermfg=red ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=darkgrey cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-" Groups used in the 'highlight' and 'guicursor' options default value.
-hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White
-hi IncSearch term=reverse cterm=reverse gui=reverse
-hi ModeMsg term=bold cterm=bold gui=bold
-hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold
-hi StatusLineNC term=reverse cterm=reverse gui=reverse
-hi VertSplit term=reverse cterm=reverse gui=reverse
-hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg
-hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold
-hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red
-hi Cursor ctermbg=Green guibg=Green guifg=Black
-hi lCursor guibg=Cyan guifg=Black
-hi Directory term=bold ctermfg=LightRed guifg=Red
-hi LineNr term=underline ctermfg=Yellow guifg=Yellow
-hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen
-hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey90
-hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green
-hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi SpecialKey term=bold ctermfg=LightBlue guifg=Blue
-hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta
-hi WarningMsg term=standout ctermfg=LightRed guifg=Red
-hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black
-hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue
-hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue
-hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue
-hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta
-hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
 
-hi Comment ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
-hi SpecialChar ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold
-hi StorageClass ctermfg=Red ctermbg=White guifg=Red gui=bold
-hi Number ctermfg=LightRed ctermbg=White guifg=LightRed gui=bold
-
-" Groups for syntax highlighting
-hi Constant term=underline ctermfg=Magenta guifg=#a07070 guibg=grey80
-hi Special term=bold ctermfg=LightRed guifg=DarkOrange guibg=grey80
-if &t_Co > 8
-  hi Statement term=bold cterm=bold ctermfg=DarkGreen ctermbg=White guifg=#ffff60 gui=bold
-endif
-hi Ignore ctermfg=LightGrey guifg=grey90
-
-" vim: sw=2
+" Background: light
+" Color: Black       #000000        16             black
+" Color: DarkGrey    #767676        243            darkgrey
+" Color: MediumGrey  #A8A8A8        248            darkgrey
+" Color: LightGrey   #DADADA        253            grey
+" Color: White       #ffffff        231            white
+" Color: Cyan        #00ffff        51             cyan
+" Color: Magenta     #ff00ff        201            magenta
+" Color: Red         #ff0000        196            red
+" Color: Yellow      #ffff00        226            yellow
+" Color: SeaGreen    #2e8b57        29             darkgreen
+" Color: DarkBlue    #00008b        18             darkblue
+" Color: DarkCyan    #008b8b        30             darkcyan
+" Color: DarkGreen   #006400        22             darkgreen
+" Color: DarkOrange  #ff8c00        208            darkyellow
+" Color: DarkRed     #8b0000        88             darkred
+" Color: LightBlue   #add8e6        153            blue
+" Color: LightGreen  #90ee90        120            green
+" Color: LightMagenta#ff83fa        213            magenta
+" Color: LightRed    #ffafaf        217            red
+" Color: MutedRed    #a07070        95             darkred
+" Color: MutedYellow #ffff60        228            yellow
+" Color: Purple      #6a0dad        55             darkmagenta
+" Term colors: Black DarkRed DarkGreen Yellow DarkBlue Purple DarkCyan LightGrey
+" Term colors: DarkGrey LightRed LightGreen MutedYellow LightBlue Magenta Cyan White
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/slate.vim
+++ b/runtime/colors/slate.vim
@@ -1,56 +1,350 @@
-"%% SiSU Vim color file
-" Slate Maintainer: Ralph Amissah <ralph@amissah.com>
-" (originally looked at desert Hans Fugal <hans@fugal.net> http://hans.fugal.net/vim/colors/desert.vim (2003/05/06)
-:set background=dark
-:highlight clear
-if version > 580
- hi clear
- if exists("syntax_on")
- syntax reset
- endif
+" Name:         slate
+" Description:  Remake of slate
+" Author:       Original maintainer Ralph Amissah <ralph@amissah.com>
+" Maintainer:   Original maintainer Ralph Amissah <ralph@amissah.com>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:45 2022
+
+" Generated by Colortemplate v2.2.0
+
+set background=dark
+
+hi clear
+let g:colors_name = 'slate'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#ff0000', '#5f8700', '#ffff00', '#87d7ff', '#d7d787', '#ffd7af', '#666666', '#333333', '#ffafaf', '#00875f', '#ffd700', '#5f87d7', '#afaf87', '#ff8787', '#ffffff']
+endif
+hi Normal guifg=#ffffff guibg=#262626 gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
+hi StatusLineTermNC guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
+hi VertSplit guifg=#666666 guibg=#afaf87 gui=NONE cterm=NONE
+hi PmenuSel guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
+hi Pmenu guifg=NONE guibg=#4a4a4a gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#262626 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#ffd700 gui=NONE cterm=NONE
+hi TabLineSel guifg=#000000 guibg=#afaf87 gui=NONE cterm=NONE
+hi TabLine guifg=#666666 guibg=#333333 gui=NONE cterm=NONE
+hi TabLineFill guifg=#ff8787 guibg=#333333 gui=NONE cterm=NONE
+hi ToolbarLine guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi ToolbarButton guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
+hi NonText guifg=#5f87d7 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#00875f guibg=NONE gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#5f87d7 gui=NONE cterm=NONE
+hi Folded guifg=#666666 guibg=#000000 gui=NONE cterm=NONE
+hi FoldColumn guifg=#5f87d7 guibg=#000000 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi CursorLineNr guifg=NONE guibg=#333333 gui=NONE cterm=NONE
+hi Visual guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE
+hi VisualNOS guifg=#d7d787 guibg=#5f8700 gui=NONE cterm=NONE
+hi LineNr guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#5f87d7 guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
+hi ModeMsg guifg=#262626 guibg=#ffd700 gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
+hi MoreMsg guifg=#00875f guibg=NONE gui=NONE cterm=NONE
+hi Question guifg=#ffd700 guibg=NONE gui=NONE cterm=NONE
+hi Todo guifg=#ff0000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#000000 guibg=#ffd700 gui=NONE cterm=NONE
+hi Search guifg=#000000 guibg=#d7875f gui=NONE cterm=NONE
+hi IncSearch guifg=#000000 guibg=#00ff00 gui=NONE cterm=NONE
+hi WildMenu guifg=#262626 guibg=#d7d787 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi Cursor guifg=#333333 guibg=#d7d787 gui=NONE cterm=NONE
+hi lCursor guifg=#262626 guibg=#ffafaf gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#ffff00 guibg=NONE guisp=#ffff00 gui=undercurl cterm=underline
+hi SpellLocal guifg=#ffafaf guibg=NONE guisp=#ffafaf gui=undercurl cterm=underline
+hi SpellRare guifg=#ffd7af guibg=NONE guisp=#ffd7af gui=undercurl cterm=underline
+hi Comment guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi String guifg=#87d7ff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#ff8787 guibg=NONE gui=NONE cterm=NONE
+hi Function guifg=#ffd7af guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#d7d787 guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#5f87d7 guibg=NONE gui=bold cterm=NONE
+hi Constant guifg=#ffafaf guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#5f87d7 guibg=NONE gui=bold cterm=NONE
+hi Operator guifg=#d7875f guibg=NONE gui=NONE cterm=NONE
+hi Define guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
+hi Structure guifg=#00ff00 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#00875f guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#666666 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#ffd700 guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=231 ctermbg=235 cterm=NONE
+  hi EndOfBuffer ctermfg=68 ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=16 ctermbg=144 cterm=NONE
+  hi StatusLineNC ctermfg=241 ctermbg=144 cterm=NONE
+  hi StatusLineTerm ctermfg=16 ctermbg=144 cterm=NONE
+  hi StatusLineTermNC ctermfg=241 ctermbg=144 cterm=NONE
+  hi VertSplit ctermfg=241 ctermbg=144 cterm=NONE
+  hi PmenuSel ctermfg=235 ctermbg=186 cterm=NONE
+  hi Pmenu ctermfg=NONE ctermbg=239 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=235 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=220 cterm=NONE
+  hi TabLineSel ctermfg=16 ctermbg=144 cterm=NONE
+  hi TabLine ctermfg=241 ctermbg=236 cterm=NONE
+  hi TabLineFill ctermfg=210 ctermbg=236 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=235 ctermbg=186 cterm=NONE
+  hi NonText ctermfg=68 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=29 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=68 cterm=NONE
+  hi Folded ctermfg=241 ctermbg=16 cterm=NONE
+  hi FoldColumn ctermfg=68 ctermbg=16 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=236 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=236 cterm=NONE
+  hi CursorLineNr ctermfg=NONE ctermbg=236 cterm=NONE
+  hi Visual ctermfg=186 ctermbg=64 cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=235 cterm=NONE
+  hi VisualNOS ctermfg=186 ctermbg=64 cterm=NONE
+  hi LineNr ctermfg=241 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=68 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi ErrorMsg ctermfg=196 ctermbg=16 cterm=reverse
+  hi ModeMsg ctermfg=235 ctermbg=220 cterm=NONE
+  hi WarningMsg ctermfg=210 ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=220 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=196 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=16 ctermbg=220 cterm=NONE
+  hi Search ctermfg=16 ctermbg=173 cterm=NONE
+  hi IncSearch ctermfg=16 ctermbg=46 cterm=NONE
+  hi WildMenu ctermfg=235 ctermbg=186 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=16 cterm=NONE
+  hi Cursor ctermfg=236 ctermbg=186 cterm=NONE
+  hi lCursor ctermfg=235 ctermbg=217 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=226 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=217 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=223 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=241 ctermbg=NONE cterm=NONE
+  hi String ctermfg=117 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=210 ctermbg=NONE cterm=NONE
+  hi Function ctermfg=223 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=186 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=68 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=173 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=68 ctermbg=NONE cterm=NONE
+  hi Operator ctermfg=173 ctermbg=NONE cterm=NONE
+  hi Define ctermfg=220 ctermbg=NONE cterm=NONE
+  hi Structure ctermfg=46 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=29 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=241 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=220 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
-let colors_name = "slate"
-:hi Normal guifg=White guibg=grey15
-:hi Cursor guibg=khaki guifg=slategrey
-:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
-:hi Folded guibg=black guifg=grey40 ctermfg=grey ctermbg=darkgrey
-:hi FoldColumn guibg=black guifg=grey20 ctermfg=4 ctermbg=7
-:hi IncSearch guifg=green guibg=black cterm=none ctermfg=yellow ctermbg=green
-:hi ModeMsg guifg=goldenrod cterm=none ctermfg=brown
-:hi MoreMsg guifg=SeaGreen ctermfg=darkgreen
-:hi NonText guifg=RoyalBlue guibg=grey15 cterm=bold ctermfg=blue
-:hi Question guifg=springgreen ctermfg=green
-:hi Search guibg=peru guifg=wheat cterm=none ctermfg=grey ctermbg=blue
-:hi SpecialKey guifg=yellowgreen ctermfg=darkgreen
-:hi StatusLine guibg=#c2bfa5 guifg=black gui=none cterm=bold,reverse
-:hi StatusLineNC guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse
-:hi Title guifg=gold gui=bold cterm=bold ctermfg=yellow
-:hi Statement guifg=CornflowerBlue ctermfg=lightblue
-:hi Visual gui=none guifg=khaki guibg=olivedrab cterm=reverse
-:hi WarningMsg guifg=salmon ctermfg=1
-:hi String guifg=SkyBlue ctermfg=darkcyan
-:hi Comment term=bold ctermfg=11 guifg=grey40
-:hi Constant guifg=#ffa0a0 ctermfg=brown
-:hi Special guifg=darkkhaki ctermfg=brown
-:hi Identifier guifg=salmon ctermfg=red
-:hi Include guifg=red ctermfg=red
-:hi PreProc guifg=red guibg=white ctermfg=red
-:hi Operator guifg=Red ctermfg=Red
-:hi Define guifg=gold gui=bold ctermfg=yellow
-:hi Type guifg=CornflowerBlue ctermfg=2
-:hi Function guifg=navajowhite ctermfg=brown
-:hi Structure guifg=green ctermfg=green
-:hi LineNr guifg=grey50 ctermfg=3
-:hi Ignore guifg=grey40 cterm=bold ctermfg=7
-:hi Todo guifg=orangered guibg=yellow2
-:hi Directory ctermfg=darkcyan
-:hi ErrorMsg cterm=bold guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
-:hi VisualNOS cterm=bold,underline
-:hi WildMenu ctermfg=0 ctermbg=3
-:hi DiffAdd ctermbg=4
-:hi DiffChange ctermbg=5
-:hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
-:hi DiffText cterm=bold ctermbg=1
-:hi Underlined cterm=underline ctermfg=5
-:hi Error guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
-:hi SpellErrors guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1
+
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=black ctermbg=grey cterm=NONE
+  hi StatusLineNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+  hi StatusLineTerm ctermfg=black ctermbg=grey cterm=NONE
+  hi StatusLineTermNC ctermfg=darkgrey ctermbg=grey cterm=NONE
+  hi VertSplit ctermfg=darkgrey ctermbg=grey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi Pmenu ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=black cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=yellow cterm=NONE
+  hi TabLineSel ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi TabLine ctermfg=grey ctermbg=darkgrey cterm=NONE
+  hi TabLineFill ctermfg=cyan ctermbg=darkgrey cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=green ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=blue cterm=NONE
+  hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi Visual ctermfg=yellow ctermbg=darkgreen cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=black cterm=NONE
+  hi VisualNOS ctermfg=darkmagenta ctermbg=darkgreen cterm=NONE
+  hi LineNr ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi Error ctermfg=darkred ctermbg=white cterm=reverse
+  hi ErrorMsg ctermfg=darkred ctermbg=black cterm=reverse
+  hi ModeMsg ctermfg=black ctermbg=yellow cterm=NONE
+  hi WarningMsg ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE
+  hi Question ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=darkred ctermbg=darkyellow cterm=NONE
+  hi MatchParen ctermfg=black ctermbg=yellow cterm=NONE
+  hi Search ctermfg=black ctermbg=darkmagenta cterm=NONE
+  hi IncSearch ctermfg=black ctermbg=darkgreen cterm=NONE
+  hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi ColorColumn ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi Cursor ctermfg=darkgrey ctermbg=darkmagenta cterm=NONE
+  hi lCursor ctermfg=black ctermbg=red cterm=NONE
+  hi SpellBad ctermfg=darkred ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=darkyellow ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
+  hi Comment ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi String ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Function ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkyellow ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=red ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Type ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Operator ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Define ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi Structure ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=green ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: foreground  #FFFFFF        231            white
+" Color: background  #262626        235            black
+" Color: color00     #000000        16             black
+" Color: color08     #333333        236            darkgrey
+" Color: color01     #FF0000        196            darkred
+" Color: color09     #FFAFAF        217            red
+" Color: color02     #5F8700        64             darkgreen
+" Color: color10     #00875F        29             green
+" Color: color03     #ffff00        226            darkyellow
+" Color: color11     #FFD700        220            yellow
+" Color: color04     #87d7FF        117            darkblue
+" Color: color12     #5F87D7        68             blue
+" Color: color05     #d7d787        186            darkmagenta
+" Color: color13     #AFAF87        144            magenta
+" Color: color06     #FFD7AF        223            darkcyan
+" Color: color14     #FF8787        210            cyan
+" Color: color07     #666666        241            grey
+" Color: color15     #FFFFFF        231            white
+" Color: color16     #D7875F        173            darkmagenta
+" Color: color17     #00FF00        46             darkgreen
+" Color: Pmenu       #4A4A4A        239            darkgrey
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/tools/check_colors.vim
+++ b/runtime/colors/tools/check_colors.vim
@@ -1,238 +1,207 @@
-" This script tests a color scheme for some errors and lists potential errors.
-" Load the scheme and source this script, like this:
-"    :edit colors/desert.vim | :so colors/tools/check_colors.vim
-
-let s:save_cpo= &cpo
-set cpo&vim
-
-func! Test_check_colors()
-  let l:savedview = winsaveview()
-  call cursor(1,1)
-  let err = {}
-
-  " 1) Check g:colors_name is existing
-  if !search('\<\%(g:\)\?colors_name\>', 'cnW')
-    let err['colors_name'] = 'g:colors_name not set'
-  else
-    let err['colors_name'] = 'OK'
-  endif
+vim9script
+# This script tests a color scheme for some errors and lists potential errors.
+# Load the scheme and source this script, like this:
+#    :edit colors/desert.vim | :ru colors/tools/check_colors.vim
 
-  " 2) Check for some well-defined highlighting groups
-  let hi_groups = [
-        \ 'ColorColumn',
-        \ 'Comment',
-        \ 'Conceal',
-        \ 'Constant',
-        \ 'Cursor',
-        \ 'CursorColumn',
-        \ 'CursorLine',
-        \ 'CursorLineNr',
-        \ 'DiffAdd',
-        \ 'DiffChange',
-        \ 'DiffDelete',
-        \ 'DiffText',
-        \ 'Directory',
-        \ 'EndOfBuffer',
-        \ 'Error',
-        \ 'ErrorMsg',
-        \ 'FoldColumn',
-        \ 'Folded',
-        \ 'Identifier',
-        \ 'Ignore',
-        \ 'IncSearch',
-        \ 'LineNr',
-        \ 'MatchParen',
-        \ 'ModeMsg',
-        \ 'MoreMsg',
-        \ 'NonText',
-        \ 'Normal',
-        \ 'Pmenu',
-        \ 'PmenuSbar',
-        \ 'PmenuSel',
-        \ 'PmenuThumb',
-        \ 'PreProc',
-        \ 'Question',
-        \ 'QuickFixLine',
-        \ 'Search',
-        \ 'SignColumn',
-        \ 'Special',
-        \ 'SpecialKey',
-        \ 'SpellBad',
-        \ 'SpellCap',
-        \ 'SpellLocal',
-        \ 'SpellRare',
-        \ 'Statement',
-        \ 'StatusLine',
-        \ 'StatusLineNC',
-        \ 'StatusLineTerm',
-        \ 'StatusLineTermNC',
-        \ 'TabLine',
-        \ 'TabLineFill',
-        \ 'TabLineSel',
-        \ 'Title',
-        \ 'Todo',
-        \ 'ToolbarButton',
-        \ 'ToolbarLine',
-        \ 'Type',
-        \ 'Underlined',
-        \ 'VertSplit',
-        \ 'Visual',
-        \ 'VisualNOS',
-        \ 'WarningMsg',
-        \ 'WildMenu',
-        \ ]
-  let groups = {}
-  for group in hi_groups
-    if search('\c@suppress\s\+\<' .. group .. '\>', 'cnW')
-      " skip check, if the script contains a line like
-      " @suppress Visual:
-      continue
-    endif
-    if search('hi\%[ghlight]!\= \+link \+' .. group, 'cnW') " Linked group
-      continue
-    endif
-    if !search('hi\%[ghlight] \+\<' .. group .. '\>', 'cnW')
-      let groups[group] = 'No highlight definition for ' .. group
-      continue
-    endif
-    if !search('hi\%[ghlight] \+\<' .. group .. '\>.*[bf]g=', 'cnW')
-      let groups[group] = 'Missing foreground or background color for ' .. group
-      continue
-    endif
-    if search('hi\%[ghlight] \+\<' .. group .. '\>.*guibg=', 'cnW') &&
-        \ !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermbg=', 'cnW')
-	\ && group != 'Cursor'
-      let groups[group] = 'Missing bg terminal color for ' .. group
-      continue
-    endif
-    if !search('hi\%[ghlight] \+\<' .. group .. '\>.*guifg=', 'cnW')
-	  \ && group !~ '^Diff'
-      let groups[group] = 'Missing guifg definition for ' .. group
-      continue
-    endif
-    if !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermfg=', 'cnW')
-	  \ && group !~ '^Diff'
-	  \ && group != 'Cursor'
-      let groups[group] = 'Missing ctermfg definition for ' .. group
-      continue
+def Test_check_colors()
+    const savedview = winsaveview()
+    cursor(1, 1)
+    var err = {}
+
+    # 1) Check g:colors_name is existing
+    if !search('\<\%(g:\)\?colors_name\>', 'cnW')
+        err['colors_name'] = 'g:colors_name not set'
+    else
+        err['colors_name'] = 'OK'
     endif
-    " do not check for background colors, they could be intentionally left out
-    call cursor(1,1)
-  endfor
-  let err['highlight'] = groups
-
-  " 3) Check, that it does not set background highlighting
-  " Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
-  let bg_set = '\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
-  let bg_let = 'let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
-  let bg_pat = '\%(' .. bg_set .. '\|' .. bg_let .. '\)'
-  let line = search(bg_pat, 'cnW')
-  if search(bg_pat, 'cnW')
-    exe line
-    if search('hi \U\w\+\s\+\S', 'cbnW')
-      let err['background'] = 'Should not set background option after :hi statement'
-    endif
-  else
-    let err['background'] = 'OK'
-  endif
-  call cursor(1,1)
-
-  " 4) Check, that t_Co is checked
-  let pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
-  if !search(pat, 'ncW')
-    let err['t_Co'] = 'Does not check terminal for capable colors'
-  endif
-
-  " 5) Initializes correctly, e.g. should have a section like
-  " hi clear
-  " if exists("syntax_on")
-  " syntax reset
-  " endif
-  let pat = 'hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif'
-  if !search(pat, 'cnW')
-    let err['init'] = 'No initialization'
-  endif
-
-  " 6) Does not use :syn on
-  if search('syn\%[tax]\s\+on', 'cnW')
-    let err['background'] = 'Should not issue :syn on'
-  endif
-
-  " 7) Does not define filetype specific groups like vimCommand, htmlTag,
-  let hi_groups = filter(getcompletion('', 'filetype'), { _,v -> v !~# '\%[no]syn\%(color\|load\|tax\)' })
-  let ft_groups = []
-  " let group = '\%('.join(hi_groups, '\|').'\)' " More efficient than a for loop, but less informative
-  for group in hi_groups
-    let pat = '\Chi\%[ghlight]!\= *\%[link] \+\zs' .. group .. '\w\+\>\ze \+.' " Skips `hi clear`
-    if search(pat, 'cW')
-      call add(ft_groups, matchstr(getline('.'), pat))
-    endif
-    call cursor(1,1)
-  endfor
-  if !empty(ft_groups)
-    let err['filetype'] = get(err, 'filetype', 'Should not define: ') . join(uniq(sort(ft_groups)))
-  endif
 
-  " 8) Were debugPC and debugBreakpoint defined?
-  for group in ['debugPC', 'debugBreakpoint']
-    let pat = '\Chi\%[ghlight]!\= *\%[link] \+\zs' .. group .. '\>'
-    if search(pat, 'cnW')
-      let line = search(pat, 'cW')
-      let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
-    endif
-    call cursor(1,1)
-  endfor
-
-  " 9) Normal should be defined first, not use reverse, fg or bg
-  call cursor(1,1)
-  let pat = 'hi\%[ghlight] \+\%(link\|clear\)\@!\w\+\>'
-  call search(pat, 'cW') " Look for the first hi def, skipping `hi link` and `hi clear`
-  if getline('.') !~# '\m\<Normal\>'
-    let err['highlight']['Normal'] = 'Should be defined first'
-  elseif getline('.') =~# '\m\%(=\%(fg\|bg\)\)'
-    let err['highlight']['Normal'] = "Should not use 'fg' or 'bg'"
-  elseif getline('.') =~# '\m=\%(inv\|rev\)erse'
-    let err['highlight']['Normal'] = 'Should not use reverse mode'
-  endif
-
-  call winrestview(l:savedview)
-  let g:err = err
-
-  " print Result
-  call Result(err)
-endfu
+    # 2) Check for some well-defined highlighting groups
+    const hi_groups = [
+        'ColorColumn',
+        'Comment',
+        'Conceal',
+        'Constant',
+	'CurSearch',
+        'Cursor',
+        'CursorColumn',
+        'CursorLine',
+        'CursorLineNr',
+        'CursorLineFold',
+        'CursorLineSign',
+        'DiffAdd',
+        'DiffChange',
+        'DiffDelete',
+        'DiffText',
+        'Directory',
+        'EndOfBuffer',
+        'Error',
+        'ErrorMsg',
+        'FoldColumn',
+        'Folded',
+        'Identifier',
+        'Ignore',
+        'IncSearch',
+        'LineNr',
+        'LineNrAbove',
+        'LineNrBelow',
+        'MatchParen',
+        'ModeMsg',
+        'MoreMsg',
+        'NonText',
+        'Normal',
+        'Pmenu',
+        'PmenuSbar',
+        'PmenuSel',
+        'PmenuThumb',
+        'PreProc',
+        'Question',
+        'QuickFixLine',
+        'Search',
+        'SignColumn',
+        'Special',
+        'SpecialKey',
+        'SpellBad',
+        'SpellCap',
+        'SpellLocal',
+        'SpellRare',
+        'Statement',
+        'StatusLine',
+        'StatusLineNC',
+        'StatusLineTerm',
+        'StatusLineTermNC',
+        'TabLine',
+        'TabLineFill',
+        'TabLineSel',
+        'Title',
+        'Todo',
+        'ToolbarButton',
+        'ToolbarLine',
+        'Type',
+        'Underlined',
+        'VertSplit',
+        'Visual',
+        'VisualNOS',
+        'WarningMsg',
+        'WildMenu',
+        'debugPC',
+        'debugBreakpoint',
+    ]
+    var groups = {}
+    for group in hi_groups
+        if search('\c@suppress\s\+\<' .. group .. '\>', 'cnW') != 0
+            # skip check, if the script contains a line like
+            # @suppress Visual:
+            continue
+        endif
+        if search('hi\%[ghlight]!\= \+link \+' .. group, 'cnW') != 0 # Linked group
+            continue
+        endif
+        if search('hi\%[ghlight] \+\<' .. group .. '\>', 'cnW') == 0
+            groups[group] = 'No highlight definition for ' .. group
+            continue
+        endif
+        if search('hi\%[ghlight] \+\<' .. group .. '\>.*[bf]g=', 'cnW') == 0
+            groups[group] = 'Missing foreground or background color for ' .. group
+            continue
+        endif
+        if search('hi\%[ghlight] \+\<' .. group .. '\>.*guibg=', 'cnW') != 0
+            && search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermbg=', 'cnW') == 0
+            && group != 'Cursor'
+            groups[group] = 'Missing bg terminal color for ' .. group
+            continue
+        endif
+        if search('hi\%[ghlight] \+\<' .. group .. '\>.*guifg=', 'cnW') == 0
+            && group !~ '^Diff'
+            groups[group] = 'Missing guifg definition for ' .. group
+            continue
+        endif
+        if search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermfg=', 'cnW') == 0
+            && group !~ '^Diff'
+            && group != 'Cursor'
+            groups[group] = 'Missing ctermfg definition for ' .. group
+            continue
+        endif
+        # do not check for background colors, they could be intentionally left out
+        cursor(1, 1)
+    endfor
+    err['highlight'] = groups
 
-fu! Result(err)
-  let do_groups = 0
-  echohl Title|echomsg "---------------"|echohl Normal
-  for key in sort(keys(a:err))
-    if key is# 'highlight'
-      let do_groups = !empty(a:err[key])
-      continue
+    # 3) Check, that it does not set background highlighting
+    # Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
+    const bg_set = '\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
+    const bg_let = 'let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
+    const bg_pat = '\%(' .. bg_set .. '\|' .. bg_let .. '\)'
+    const line = search(bg_pat, 'cnW')
+    if search(bg_pat, 'cnW') != 0
+        exe ":" .. line
+        if search('hi \U\w\+\s\+\S', 'cbnW') != 0
+            err['background'] = 'Should not set background option after :hi statement'
+        endif
     else
-      if a:err[key] !~ 'OK'
-        echohl Title
-      endif
-      echomsg printf("%15s: %s", key, a:err[key])
-      echohl Normal
+        err['background'] = 'OK'
+    endif
+    cursor(1, 1)
+
+    # 4) Check, that t_Co is checked
+    var pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
+    if search(pat, 'ncW') == 0
+        err['t_Co'] = 'Does not check terminal for capable colors'
+    endif
+
+    # 5) Initializes correctly, e.g. should have at least:
+    # hi clear
+    pat = '^\s*hi\%[ghlight]\s*clear\s*$'
+    if search(pat, 'cnW') == 0
+        err['init'] = 'No initialization'
+    endif
+
+    # 6) Does not use :syn on
+    if search('syn\%[tax]\s\+on', 'cnW') != 0
+        err['background'] = 'Should not issue :syn on'
     endif
-  endfor
-  echohl Title|echomsg "---------------"|echohl Normal
-  if do_groups
-    echohl Title | echomsg "Groups" | echohl Normal
-    for v1 in sort(keys(a:err['highlight']))
-      echomsg printf("%25s: %s", v1, a:err['highlight'][v1])
-    endfor
-  endif
-endfu
+
+    # 7) Normal should be defined first, not use reverse, fg or bg
+    cursor(1, 1)
+    pat = 'hi\%[light] \+\%(link\|clear\)\@!\w\+\>'
+    search(pat, 'cW') # Look for the first hi def, skipping `hi link` and `hi clear`
+    if getline('.') !~# '\m\<Normal\>'
+        err['highlight']['Normal'] = 'Should be defined first'
+    elseif getline('.') =~# '\m\%(=\%(fg\|bg\)\)'
+        err['highlight']['Normal'] = "Should not use 'fg' or 'bg'"
+    elseif getline('.') =~# '\m=\%(inv\|rev\)erse'
+        err['highlight']['Normal'] = 'Should not use reverse mode'
+    endif
+
+    # 8) TODO: XXX: Check if g:terminal_ansi_colors are defined
+
+    winrestview(savedview)
+    g:err = err
+
+    Result(err)
+enddef
 
-try
-  call Test_check_colors()
-catch
-  echohl ErrorMsg
-  echomsg v:exception
-  echohl NONE
-finally
-  let &cpo = s:save_cpo
-  unlet s:save_cpo
-endtry
+def Result(err: any)
+    var do_groups: bool = v:false
+    echohl Title | echomsg "---------------" | echohl Normal
+    for key in sort(keys(err))
+        if key is 'highlight'
+            do_groups = !empty(err[key])
+            continue
+        else
+            if err[key] !~ 'OK'
+                echohl Title
+            endif
+            echomsg printf("%15s: %s", key, err[key])
+            echohl Normal
+        endif
+    endfor
+    echohl Title | echomsg "---------------" | echohl Normal
+    if do_groups
+        echohl Title | echomsg "Groups" | echohl Normal
+        for v1 in sort(keys(err['highlight']))
+            echomsg printf("%25s: %s", v1, err['highlight'][v1])
+        endfor
+    endif
+enddef
+
+Test_check_colors()
--- a/runtime/colors/torte.vim
+++ b/runtime/colors/torte.vim
@@ -1,50 +1,362 @@
-" Vim color file
-" Maintainer:	Thorsten Maerz <info@netztorte.de>
-" Last Change:	2006 Dec 07
-" grey on black
-" optimized for TFT panels
+" Name:         torte
+" Description:  Remake of torte (grey on black)
+" Author:       Original maintainer Thorsten Maerz <info@netztorte.de>
+" Maintainer:   Original maintainer Thorsten Maerz <info@netztorte.de>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:46 2022
+
+" Generated by Colortemplate v2.2.0
 
 set background=dark
-hi clear
-if exists("syntax_on")
-  syntax reset
-endif
-"colorscheme default
-let g:colors_name = "torte"
-
-" hardcoded colors :
-" GUI Comment : #80a0ff = Light blue
 
-" GUI
-highlight Normal     guifg=Grey80	guibg=Black
-highlight Search     guifg=Black	guibg=Red	gui=bold
-highlight Visual     guifg=#404040			gui=bold
-highlight Cursor     guifg=Black	guibg=Green	gui=bold
-highlight Special    guifg=Orange
-highlight Comment    guifg=#80a0ff
-highlight StatusLine guifg=blue		guibg=white
-highlight Statement  guifg=Yellow			gui=NONE
-highlight Type						gui=NONE
+hi clear
+let g:colors_name = 'torte'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
 
-" Console
-highlight Normal     ctermfg=LightGrey	ctermbg=Black
-highlight Search     ctermfg=Black	ctermbg=Red	cterm=NONE
-highlight Visual					cterm=reverse
-highlight Cursor     ctermfg=Black	ctermbg=Green	cterm=bold
-highlight Special    ctermfg=Brown
-highlight Comment    ctermfg=Blue
-highlight StatusLine ctermfg=blue	ctermbg=white
-highlight Statement  ctermfg=Yellow			cterm=NONE
-highlight Type						cterm=NONE
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']
+endif
+hi Normal guifg=#cccccc guibg=#000000 gui=NONE cterm=NONE
+hi! link StatusLineTerm StatusLine
+hi! link StatusLineTermNC StatusLineNC
+hi Comment guifg=#80a0ff guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ffa0a0 guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#40ffff guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#ffff60 guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#ff80ff guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#60ff60 guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ffa500 guibg=NONE gui=NONE cterm=NONE
+hi Underlined guifg=#80a0ff guibg=NONE gui=underline cterm=underline
+hi Ignore guifg=#000000 guibg=#000000 gui=NONE cterm=NONE
+hi Error guifg=#ffffff guibg=#ff0000 gui=NONE cterm=NONE
+hi Todo guifg=#ffff00 guibg=#000000 gui=reverse cterm=reverse
+hi Folded guifg=#00cdcd guibg=#3a3a3a gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#a9a9a9 gui=bold cterm=NONE
+hi CursorColumn guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#666666 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#ffff00 guibg=#666666 gui=NONE cterm=NONE
+hi SignColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi ColorColumn guifg=#cccccc guibg=#8b0000 gui=NONE cterm=NONE
+hi Conceal guifg=#e5e5e5 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi Cursor guifg=#000000 guibg=#00ff00 gui=bold cterm=NONE
+hi lCursor guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi CursorIM guifg=NONE guibg=fg gui=NONE cterm=NONE
+hi Title guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi Directory guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi Search guifg=#ff0000 guibg=#000000 gui=reverse cterm=reverse
+hi IncSearch guifg=#00cd00 guibg=#000000 gui=reverse cterm=reverse
+hi NonText guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi EndOfBuffer guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi ErrorMsg guifg=#ffffff guibg=#cd0000 gui=NONE cterm=NONE
+hi WarningMsg guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi LineNr guifg=#7f7f7f guibg=NONE gui=NONE cterm=NONE
+hi MatchParen guifg=NONE guibg=#008b8b gui=NONE cterm=NONE
+hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=NONE
+hi MoreMsg guifg=#2e8b57 guibg=NONE gui=bold cterm=NONE
+hi Question guifg=#00ff00 guibg=NONE gui=bold cterm=NONE
+hi SpecialKey guifg=#00ffff guibg=NONE gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#000000 gui=bold,underline cterm=underline
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi QuickFixLine guifg=#000000 guibg=#cdcd00 gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#5c5cff guibg=NONE guisp=#5c5cff gui=undercurl cterm=underline
+hi SpellLocal guifg=#ff00ff guibg=NONE guisp=#ff00ff gui=undercurl cterm=underline
+hi SpellRare guifg=#00ffff guibg=NONE guisp=#00ffff gui=undercurl cterm=underline
+hi StatusLine guifg=#ffffff guibg=#0000ee gui=bold cterm=NONE
+hi StatusLineNC guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi VertSplit guifg=#000000 guibg=#e5e5e5 gui=NONE cterm=NONE
+hi TabLine guifg=#ffffff guibg=#7f7f7f gui=NONE cterm=NONE
+hi TabLineFill guifg=NONE guibg=#000000 gui=reverse cterm=reverse
+hi TabLineSel guifg=#cccccc guibg=#000000 gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#000000 gui=NONE cterm=NONE
+hi ToolbarButton guifg=#000000 guibg=#e5e5e5 gui=bold cterm=NONE
+hi Pmenu guifg=fg guibg=#303030 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#bebebe gui=NONE cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
 
-" only for vim 5
-if has("unix")
-  if v:version<600
-    highlight Normal  ctermfg=Grey	ctermbg=Black	cterm=NONE	guifg=Grey80      guibg=Black	gui=NONE
-    highlight Search  ctermfg=Black	ctermbg=Red	cterm=bold	guifg=Black       guibg=Red	gui=bold
-    highlight Visual  ctermfg=Black	ctermbg=yellow	cterm=bold	guifg=#404040			gui=bold
-    highlight Special ctermfg=LightBlue			cterm=NONE	guifg=LightBlue			gui=NONE
-    highlight Comment ctermfg=Cyan			cterm=NONE	guifg=LightBlue			gui=NONE
-  endif
+if s:t_Co >= 256
+  hi Normal ctermfg=251 ctermbg=16 cterm=NONE
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi Comment ctermfg=111 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=217 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=87 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=227 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=213 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=83 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=214 ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=111 ctermbg=NONE cterm=underline
+  hi Ignore ctermfg=16 ctermbg=16 cterm=NONE
+  hi Error ctermfg=231 ctermbg=196 cterm=NONE
+  hi Todo ctermfg=226 ctermbg=16 cterm=reverse
+  hi Folded ctermfg=44 ctermbg=237 cterm=NONE
+  hi Visual ctermfg=16 ctermbg=248 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=242 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=242 cterm=NONE
+  hi CursorLineNr ctermfg=226 ctermbg=242 cterm=NONE
+  hi SignColumn ctermfg=51 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=51 ctermbg=NONE cterm=NONE
+  hi ColorColumn ctermfg=251 ctermbg=88 cterm=NONE
+  hi Conceal ctermfg=254 ctermbg=248 cterm=NONE
+  hi Cursor ctermfg=16 ctermbg=46 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=254 cterm=NONE
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi Title ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=51 ctermbg=NONE cterm=NONE
+  hi Search ctermfg=196 ctermbg=16 cterm=reverse
+  hi IncSearch ctermfg=40 ctermbg=16 cterm=reverse
+  hi NonText ctermfg=21 ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=21 ctermbg=NONE cterm=NONE
+  hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE
+  hi WarningMsg ctermfg=196 ctermbg=NONE cterm=NONE
+  hi LineNr ctermfg=102 ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=30 cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=29 ctermbg=NONE cterm=NONE
+  hi Question ctermfg=46 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=51 ctermbg=NONE cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=16 cterm=underline
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi QuickFixLine ctermfg=16 ctermbg=184 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=63 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=201 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=51 ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=231 ctermbg=20 cterm=NONE
+  hi StatusLineNC ctermfg=16 ctermbg=254 cterm=NONE
+  hi VertSplit ctermfg=16 ctermbg=254 cterm=NONE
+  hi TabLine ctermfg=231 ctermbg=102 cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=16 cterm=reverse
+  hi TabLineSel ctermfg=251 ctermbg=16 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=16 cterm=NONE
+  hi ToolbarButton ctermfg=16 ctermbg=254 cterm=NONE
+  hi Pmenu ctermfg=fg ctermbg=236 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=250 cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
 endif
 
+if s:t_Co >= 16
+  hi Normal ctermfg=white ctermbg=black cterm=NONE
+  hi! link StatusLineTerm StatusLine
+  hi! link StatusLineTermNC StatusLineNC
+  hi Comment ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=yellow ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Type ctermfg=green ctermbg=NONE cterm=NONE
+  hi Special ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi Ignore ctermfg=black ctermbg=black cterm=NONE
+  hi Error ctermfg=white ctermbg=red cterm=NONE
+  hi Todo ctermfg=yellow ctermbg=black cterm=reverse
+  hi Folded ctermfg=darkcyan ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=black ctermbg=grey cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=yellow ctermbg=NONE cterm=underline
+  hi SignColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi ColorColumn ctermfg=white ctermbg=darkred cterm=NONE
+  hi Conceal ctermfg=grey ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=black ctermbg=green cterm=NONE
+  hi lCursor ctermfg=black ctermbg=grey cterm=NONE
+  hi CursorIM ctermfg=NONE ctermbg=fg cterm=NONE
+  hi Title ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi Search ctermfg=red ctermbg=black cterm=reverse
+  hi IncSearch ctermfg=darkgreen ctermbg=black cterm=reverse
+  hi NonText ctermfg=blue ctermbg=NONE cterm=NONE
+  hi EndOfBuffer ctermfg=blue ctermbg=NONE cterm=NONE
+  hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE
+  hi WarningMsg ctermfg=red ctermbg=NONE cterm=NONE
+  hi LineNr ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi MatchParen ctermfg=NONE ctermbg=darkcyan cterm=NONE
+  hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Question ctermfg=green ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=cyan ctermbg=NONE cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=black cterm=underline
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi QuickFixLine ctermfg=black ctermbg=darkyellow cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=magenta ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=cyan ctermbg=NONE cterm=underline
+  hi StatusLine ctermfg=white ctermbg=darkblue cterm=NONE
+  hi StatusLineNC ctermfg=black ctermbg=grey cterm=NONE
+  hi VertSplit ctermfg=black ctermbg=grey cterm=NONE
+  hi TabLine ctermfg=white ctermbg=darkgrey cterm=NONE
+  hi TabLineFill ctermfg=NONE ctermbg=black cterm=reverse
+  hi TabLineSel ctermfg=white ctermbg=black cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+  hi ToolbarButton ctermfg=black ctermbg=grey cterm=NONE
+  hi Pmenu ctermfg=fg ctermbg=darkgrey cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=grey cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: dark
+" Color: foreground     #CCCCCC     251            white
+" Color: background     #000000     16             black
+" Color: color00        #000000     16             black
+" Color: color08        #7f7f7f     102            darkgrey
+" Color: color01        #cd0000     160            darkred
+" Color: color09        #ff0000     196            red
+" Color: color02        #00cd00     40             darkgreen
+" Color: color10        #00ff00     46             green
+" Color: color03        #cdcd00     184            darkyellow
+" Color: color11        #ffff00     226            yellow
+" Color: color04        #0000ee     20             darkblue
+" Color: color12        #5c5cff     63             blue
+" Color: color05        #cd00cd     164            darkmagenta
+" Color: color13        #ff00ff     201            magenta
+" Color: color06        #00cdcd     44             darkcyan
+" Color: color14        #00ffff     51             cyan
+" Color: color07        #e5e5e5     254            grey
+" Color: color15        #ffffff     231            white
+" Term colors: color00 color01 color02 color03 color04 color05 color06 color07
+" Term colors: color08 color09 color10 color11 color12 color13 color14 color15
+" Color: rgbGrey40      #666666     242            grey
+" Color: rgbDarkGrey    #a9a9a9     248            grey
+" Color: rgbDarkBlue    #00008b     18             darkblue
+" Color: rgbDarkMagenta #8b008b     90             darkmagenta
+" Color: rgbBlue        #0000ff     21             blue
+" Color: rgbDarkCyan    #008b8b     30             darkcyan
+" Color: Directory      #00ffff     51             cyan
+" Color: rgbSeaGreen    #2e8b57     29             darkgreen
+" Color: rgbGrey        #bebebe     250            grey
+" Color: Question       #00ff00     46             green
+" Color: SignColumn     #a9a9a9     248            black
+" Color: SpecialKey     #00ffff     51             cyan
+" Color: StatusLineTerm #90ee90     120            darkgreen
+" Color: Title          #ff00ff     201            magenta
+" Color: WarningMsg     #ff0000     196            red
+" Color: ToolbarLine    #7f7f7f     243            black
+" Color: ToolbarButton  #d3d3d3     252            darkgrey
+" Color: Comment        #80a0ff     111            blue
+" Color: Constant       #ffa0a0     217            darkmagenta
+" Color: Special        #ffa500     214            darkred
+" Color: Identifier     #40ffff     87             cyan
+" Color: Statement      #ffff60     227            yellow
+" Color: PreProc        #ff80ff     213            darkcyan
+" Color: Type           #60ff60     83             green
+" Color: Underlined     #80a0ff     111            blue
+" Color: FoldedBG       #3a3a3a     237            darkgrey
+" Color: Pmenu          #303030     236            darkgrey
+" Color: rgbDarkRed     #8b0000     88             darkred
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/colors/zellner.vim
+++ b/runtime/colors/zellner.vim
@@ -1,54 +1,341 @@
-" local syntax file - set colors on a per-machine basis:
-" vim: tw=0 ts=4 sw=4
-" Vim color file
-" Maintainer:	Ron Aaron <ron@ronware.org>
-" Last Change:	2003 May 02
+" Name:         zellner
+" Description:  Light background colorscheme.
+" Author:       Original author Ron Aaron <ron@ronware.org>
+" Maintainer:   Original maintainer Ron Aaron <ron@ronware.org>
+" Website:      https://github.com/vim/colorschemes
+" License:      Same as Vim
+" Last Updated: Wed May 11 22:56:47 2022
+
+" Generated by Colortemplate v2.2.0
 
 set background=light
+
 hi clear
-if exists("syntax_on")
-  syntax reset
+let g:colors_name = 'zellner'
+
+let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1
+
+if (has('termguicolors') && &termguicolors) || has('gui_running')
+  let g:terminal_ansi_colors = ['#ffffff', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#a9a9a9', '#ff0000', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#000000']
 endif
-let g:colors_name = "zellner"
+hi Normal guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE
+hi Folded guifg=#00008b guibg=#d3d3d3 gui=NONE cterm=NONE
+hi CursorLine guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
+hi CursorColumn guifg=NONE guibg=#e5e5e5 gui=NONE cterm=NONE
+hi CursorLineNr guifg=#a52a2a guibg=NONE gui=bold cterm=NONE
+hi QuickFixLine guifg=#ffffff guibg=#6a5acd gui=NONE cterm=NONE
+hi EndOfBuffer guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi StatusLine guifg=#ffff00 guibg=#a9a9a9 gui=NONE cterm=NONE
+hi StatusLineNC guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi StatusLineTerm guifg=#ffffff guibg=#006400 gui=NONE cterm=NONE
+hi StatusLineTermNC guifg=#ffffff guibg=#0000ff gui=NONE cterm=NONE
+hi VertSplit guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi Pmenu guifg=#000000 guibg=#dadada gui=NONE cterm=NONE
+hi PmenuSel guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi PmenuSbar guifg=NONE guibg=#ffffff gui=NONE cterm=NONE
+hi PmenuThumb guifg=NONE guibg=#a9a9a9 gui=NONE cterm=NONE
+hi TabLine guifg=#000000 guibg=#a9a9a9 gui=underline cterm=underline
+hi TabLineFill guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse
+hi TabLineSel guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ToolbarLine guifg=NONE guibg=#d3d3d3 gui=NONE cterm=NONE
+hi ToolbarButton guifg=NONE guibg=#a9a9a9 gui=bold cterm=NONE
+hi NonText guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi SpecialKey guifg=#a9a9a9 guibg=NONE gui=NONE cterm=NONE
+hi Visual guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi VisualNOS guifg=NONE guibg=#ff0000 gui=NONE cterm=NONE
+hi LineNr guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi FoldColumn guifg=#00008b guibg=NONE gui=NONE cterm=NONE
+hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Underlined guifg=#6a5acd guibg=NONE gui=underline cterm=underline
+hi Error guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi ErrorMsg guifg=#ff0000 guibg=#ffffff gui=reverse cterm=reverse
+hi WarningMsg guifg=#a020f0 guibg=#ffffff gui=NONE cterm=NONE
+hi MoreMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi ModeMsg guifg=#000000 guibg=#ffffff gui=bold cterm=NONE
+hi Question guifg=#ff00ff guibg=NONE gui=bold cterm=NONE
+hi Todo guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi MatchParen guifg=#ffffff guibg=#ff00ff gui=NONE cterm=NONE
+hi Search guifg=#ffffff guibg=#a020f0 gui=NONE cterm=NONE
+hi IncSearch guifg=#000000 guibg=NONE gui=reverse cterm=reverse
+hi WildMenu guifg=#000000 guibg=#ffff00 gui=NONE cterm=NONE
+hi ColorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE
+hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE
+hi lCursor guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE
+hi SpellBad guifg=#ff0000 guibg=NONE guisp=#ff0000 gui=undercurl cterm=underline
+hi SpellCap guifg=#0000ff guibg=NONE guisp=#0000ff gui=undercurl cterm=underline
+hi SpellLocal guifg=#878700 guibg=NONE guisp=#878700 gui=undercurl cterm=underline
+hi SpellRare guifg=#008787 guibg=NONE guisp=#008787 gui=undercurl cterm=underline
+hi Comment guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Constant guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Identifier guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Statement guifg=#a52a2a guibg=NONE gui=NONE cterm=NONE
+hi PreProc guifg=#a020f0 guibg=NONE gui=NONE cterm=NONE
+hi Type guifg=#0000ff guibg=NONE gui=NONE cterm=NONE
+hi Special guifg=#ff00ff guibg=NONE gui=NONE cterm=NONE
+hi Tag guifg=#006400 guibg=NONE gui=NONE cterm=NONE
+hi Directory guifg=#0000ff guibg=NONE gui=bold cterm=NONE
+hi Conceal guifg=#ff0000 guibg=NONE gui=NONE cterm=NONE
+hi Ignore guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE
+hi Title guifg=#a020f0 guibg=NONE gui=bold cterm=NONE
+hi! link Terminal Normal
+hi! link LineNrAbove LineNr
+hi! link LineNrBelow LineNr
+hi! link CurSearch Search
+hi! link CursorLineFold CursorLine
+hi! link CursorLineSign CursorLine
+hi DiffAdd guifg=#ffffff guibg=#5f875f gui=NONE cterm=NONE
+hi DiffChange guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE
+hi DiffText guifg=#000000 guibg=#c6c6c6 gui=NONE cterm=NONE
+hi DiffDelete guifg=#ffffff guibg=#af5faf gui=NONE cterm=NONE
+
+if s:t_Co >= 256
+  hi Normal ctermfg=16 ctermbg=231 cterm=NONE
+  hi Folded ctermfg=18 ctermbg=252 cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=254 cterm=NONE
+  hi CursorColumn ctermfg=NONE ctermbg=254 cterm=NONE
+  hi CursorLineNr ctermfg=124 ctermbg=NONE cterm=NONE
+  hi QuickFixLine ctermfg=231 ctermbg=62 cterm=NONE
+  hi EndOfBuffer ctermfg=248 ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=226 ctermbg=248 cterm=NONE
+  hi StatusLineNC ctermfg=231 ctermbg=16 cterm=NONE
+  hi StatusLineTerm ctermfg=231 ctermbg=22 cterm=NONE
+  hi StatusLineTermNC ctermfg=231 ctermbg=21 cterm=NONE
+  hi VertSplit ctermfg=231 ctermbg=16 cterm=NONE
+  hi Pmenu ctermfg=16 ctermbg=253 cterm=NONE
+  hi PmenuSel ctermfg=16 ctermbg=226 cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=231 cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=248 cterm=NONE
+  hi TabLine ctermfg=16 ctermbg=248 cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=16 ctermbg=231 cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=252 cterm=NONE
+  hi ToolbarButton ctermfg=NONE ctermbg=248 cterm=NONE
+  hi NonText ctermfg=248 ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=248 ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=16 ctermbg=226 cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=196 cterm=NONE
+  hi LineNr ctermfg=124 ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=18 ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=62 ctermbg=NONE cterm=underline
+  hi Error ctermfg=196 ctermbg=231 cterm=reverse
+  hi ErrorMsg ctermfg=196 ctermbg=231 cterm=reverse
+  hi WarningMsg ctermfg=129 ctermbg=231 cterm=NONE
+  hi MoreMsg ctermfg=16 ctermbg=231 cterm=NONE
+  hi ModeMsg ctermfg=16 ctermbg=231 cterm=NONE
+  hi Question ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=16 ctermbg=226 cterm=NONE
+  hi MatchParen ctermfg=231 ctermbg=201 cterm=NONE
+  hi Search ctermfg=231 ctermbg=129 cterm=NONE
+  hi IncSearch ctermfg=16 ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=16 ctermbg=226 cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=255 cterm=NONE
+  hi Cursor ctermfg=231 ctermbg=16 cterm=NONE
+  hi lCursor ctermfg=16 ctermbg=201 cterm=NONE
+  hi SpellBad ctermfg=196 ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=21 ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=100 ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=30 ctermbg=NONE cterm=underline
+  hi Comment ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=124 ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=129 ctermbg=NONE cterm=NONE
+  hi Type ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Special ctermfg=201 ctermbg=NONE cterm=NONE
+  hi Tag ctermfg=22 ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=21 ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=196 ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=129 ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=231 ctermbg=65 cterm=NONE
+  hi DiffChange ctermfg=231 ctermbg=67 cterm=NONE
+  hi DiffText ctermfg=16 ctermbg=251 cterm=NONE
+  hi DiffDelete ctermfg=231 ctermbg=133 cterm=NONE
+  unlet s:t_Co
+  finish
+endif
 
-hi Comment term=bold ctermfg=Red guifg=Red
-hi Normal guifg=black guibg=white
-hi Constant term=underline ctermfg=Magenta guifg=Magenta
-hi Special term=bold ctermfg=Magenta guifg=Magenta
-hi Identifier term=underline ctermfg=Blue guifg=Blue
-hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown
-hi PreProc term=underline ctermfg=Magenta guifg=Purple
-hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue
-hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=Yellow
-hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan
-hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen
-hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White
-hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow
-hi  StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Yellow guibg=DarkGray
-hi! link MoreMsg Comment
-hi! link ErrorMsg Visual
-hi! link WarningMsg ErrorMsg
-hi! link Question Comment
-hi link String	Constant
-hi link Character	Constant
-hi link Number	Constant
-hi link Boolean	Constant
-hi link Float		Number
-hi link Function	Identifier
-hi link Conditional	Statement
-hi link Repeat	Statement
-hi link Label		Statement
-hi link Operator	Statement
-hi link Keyword	Statement
-hi link Exception	Statement
-hi link Include	PreProc
-hi link Define	PreProc
-hi link Macro		PreProc
-hi link PreCondit	PreProc
-hi link StorageClass	Type
-hi link Structure	Type
-hi link Typedef	Type
-hi link SpecialChar	Special
-hi link Delimiter	Special
-hi link SpecialComment Special
-hi link Debug		Special
+if s:t_Co >= 16
+  hi Normal ctermfg=black ctermbg=white cterm=NONE
+  hi Folded ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorColumn ctermfg=NONE ctermbg=NONE cterm=underline
+  hi CursorLineNr ctermfg=darkred ctermbg=NONE cterm=underline
+  hi QuickFixLine ctermfg=white ctermbg=blue cterm=NONE
+  hi EndOfBuffer ctermfg=darkgrey ctermbg=NONE cterm=NONE
+  hi StatusLine ctermfg=yellow ctermbg=darkgrey cterm=NONE
+  hi StatusLineNC ctermfg=white ctermbg=black cterm=NONE
+  hi StatusLineTerm ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi StatusLineTermNC ctermfg=white ctermbg=blue cterm=NONE
+  hi VertSplit ctermfg=white ctermbg=black cterm=NONE
+  hi Pmenu ctermfg=black ctermbg=grey cterm=NONE
+  hi PmenuSel ctermfg=black ctermbg=yellow cterm=NONE
+  hi PmenuSbar ctermfg=NONE ctermbg=white cterm=NONE
+  hi PmenuThumb ctermfg=NONE ctermbg=darkgrey cterm=NONE
+  hi TabLine ctermfg=black ctermbg=grey cterm=underline
+  hi TabLineFill ctermfg=NONE ctermbg=NONE cterm=reverse
+  hi TabLineSel ctermfg=black ctermbg=white cterm=NONE
+  hi ToolbarLine ctermfg=NONE ctermbg=black cterm=NONE
+  hi ToolbarButton ctermfg=NONE ctermbg=grey cterm=NONE
+  hi NonText ctermfg=grey ctermbg=NONE cterm=NONE
+  hi SpecialKey ctermfg=grey ctermbg=NONE cterm=NONE
+  hi Visual ctermfg=black ctermbg=yellow cterm=NONE
+  hi VisualNOS ctermfg=NONE ctermbg=red cterm=NONE
+  hi LineNr ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi FoldColumn ctermfg=darkblue ctermbg=NONE cterm=NONE
+  hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Underlined ctermfg=blue ctermbg=NONE cterm=underline
+  hi Error ctermfg=red ctermbg=white cterm=reverse
+  hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse
+  hi WarningMsg ctermfg=darkmagenta ctermbg=white cterm=NONE
+  hi MoreMsg ctermfg=black ctermbg=white cterm=NONE
+  hi ModeMsg ctermfg=black ctermbg=white cterm=NONE
+  hi Question ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Todo ctermfg=black ctermbg=yellow cterm=NONE
+  hi MatchParen ctermfg=white ctermbg=magenta cterm=NONE
+  hi Search ctermfg=white ctermbg=darkmagenta cterm=NONE
+  hi IncSearch ctermfg=black ctermbg=NONE cterm=reverse
+  hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE
+  hi ColorColumn ctermfg=NONE ctermbg=grey cterm=NONE
+  hi Cursor ctermfg=white ctermbg=black cterm=NONE
+  hi lCursor ctermfg=black ctermbg=magenta cterm=NONE
+  hi SpellBad ctermfg=red ctermbg=NONE cterm=underline
+  hi SpellCap ctermfg=blue ctermbg=NONE cterm=underline
+  hi SpellLocal ctermfg=darkyellow ctermbg=NONE cterm=underline
+  hi SpellRare ctermfg=darkcyan ctermbg=NONE cterm=underline
+  hi Comment ctermfg=red ctermbg=NONE cterm=NONE
+  hi Constant ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Identifier ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Statement ctermfg=darkred ctermbg=NONE cterm=NONE
+  hi PreProc ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi Type ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Special ctermfg=magenta ctermbg=NONE cterm=NONE
+  hi Tag ctermfg=darkgreen ctermbg=NONE cterm=NONE
+  hi Directory ctermfg=blue ctermbg=NONE cterm=NONE
+  hi Conceal ctermfg=red ctermbg=NONE cterm=NONE
+  hi Ignore ctermfg=NONE ctermbg=NONE cterm=NONE
+  hi Title ctermfg=darkmagenta ctermbg=NONE cterm=NONE
+  hi! link Terminal Normal
+  hi! link LineNrAbove LineNr
+  hi! link LineNrBelow LineNr
+  hi! link CurSearch Search
+  hi! link CursorLineFold CursorLine
+  hi! link CursorLineSign CursorLine
+  hi DiffAdd ctermfg=white ctermbg=darkgreen cterm=NONE
+  hi DiffChange ctermfg=white ctermbg=blue cterm=NONE
+  hi DiffText ctermfg=black ctermbg=grey cterm=NONE
+  hi DiffDelete ctermfg=white ctermbg=magenta cterm=NONE
+  unlet s:t_Co
+  finish
+endif
+
+if s:t_Co >= 0
+  hi Normal term=NONE
+  hi ColorColumn term=reverse
+  hi Conceal term=NONE
+  hi Cursor term=reverse
+  hi CursorColumn term=NONE
+  hi CursorLine term=underline
+  hi CursorLineNr term=bold
+  hi DiffAdd term=reverse
+  hi DiffChange term=NONE
+  hi DiffDelete term=reverse
+  hi DiffText term=reverse
+  hi Directory term=NONE
+  hi EndOfBuffer term=NONE
+  hi ErrorMsg term=bold,reverse
+  hi FoldColumn term=NONE
+  hi Folded term=NONE
+  hi IncSearch term=bold,reverse,underline
+  hi LineNr term=NONE
+  hi MatchParen term=bold,underline
+  hi ModeMsg term=bold
+  hi MoreMsg term=NONE
+  hi NonText term=NONE
+  hi Pmenu term=reverse
+  hi PmenuSbar term=reverse
+  hi PmenuSel term=bold
+  hi PmenuThumb term=NONE
+  hi Question term=standout
+  hi Search term=reverse
+  hi SignColumn term=reverse
+  hi SpecialKey term=bold
+  hi SpellBad term=underline
+  hi SpellCap term=underline
+  hi SpellLocal term=underline
+  hi SpellRare term=underline
+  hi StatusLine term=bold,reverse
+  hi StatusLineNC term=bold,underline
+  hi TabLine term=bold,underline
+  hi TabLineFill term=NONE
+  hi Terminal term=NONE
+  hi TabLineSel term=bold,reverse
+  hi Title term=NONE
+  hi VertSplit term=NONE
+  hi Visual term=reverse
+  hi VisualNOS term=NONE
+  hi WarningMsg term=standout
+  hi WildMenu term=bold
+  hi CursorIM term=NONE
+  hi ToolbarLine term=reverse
+  hi ToolbarButton term=bold,reverse
+  hi CurSearch term=reverse
+  hi CursorLineFold term=underline
+  hi CursorLineSign term=underline
+  hi Comment term=bold
+  hi Constant term=NONE
+  hi Error term=bold,reverse
+  hi Identifier term=NONE
+  hi Ignore term=NONE
+  hi PreProc term=NONE
+  hi Special term=NONE
+  hi Statement term=NONE
+  hi Todo term=bold,reverse
+  hi Type term=NONE
+  hi Underlined term=underline
+  unlet s:t_Co
+  finish
+endif
+
+" Background: light
+" Color: comment     #ff0000        196            red
+" Color: constant    #ff00ff        201            magenta
+" Color: identifier  #0000ff        21             blue
+" Color: statement   #a52a2a        124            darkred
+" Color: preproc     #a020f0        129            darkmagenta
+" Color: type        #0000ff        21             blue
+" Color: special     #ff00ff        201            magenta
+" Color: tag         #006400        22             darkgreen
+" Color: fg0         #000000        16             black
+" Color: bg0         #ffffff        231            white
+" Color: bg1         #a9a9a9        248            grey
+" Color: status      #a9a9a9        248            darkgrey
+" Color: visual      #ffff00        226            yellow
+" Color: folded      #d3d3d3        252            black
+" Color: folded_fg   #00008b        18             darkblue
+" Color: cursorline  #e5e5e5        254            black
+" Color: pmenu       #dadada        253            grey
+" Color: wildmenu    #ffff00        226            yellow
+" Color: error       #ff0000        196            red
+" Color: linenr      #a52a2a        124            darkred
+" Color: colorcolumn #eeeeee        255            grey
+" Color: slateblue   #6a5acd        62             blue
+" Color: darkcyan    #008787        30             darkcyan
+" Color: darkgreen   #008700        28             darkgreen
+" Color: darkyellow  #878700        100            darkyellow
+" Term colors: bg0     statement constant preproc identifier type special bg1
+" Term colors: comment statement constant preproc identifier type special fg0
+" Color: bgDiffA     #5F875F        65             darkgreen
+" Color: bgDiffC     #5F87AF        67             blue
+" Color: bgDiffD     #AF5FAF        133            magenta
+" Color: bgDiffT     #C6C6C6        251            grey
+" Color: fgDiffW     #FFFFFF        231            white
+" Color: fgDiffB     #000000        16             black
+" vim: et ts=2 sw=2
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -144,7 +144,9 @@ DOCS = \
 	usr_43.txt \
 	usr_44.txt \
 	usr_45.txt \
-	usr_46.txt \
+	usr_50.txt \
+	usr_51.txt \
+	usr_52.txt \
 	usr_90.txt \
 	usr_toc.txt \
 	various.txt \
@@ -290,7 +292,9 @@ HTMLS = \
 	usr_43.html \
 	usr_44.html \
 	usr_45.html \
-	usr_46.html \
+	usr_50.html \
+	usr_51.html \
+	usr_52.html \
 	usr_90.html \
 	usr_toc.html \
 	various.html \
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2022 May 11
+*eval.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2960,7 +2960,7 @@ the "autoload" directory in 'runtimepath
 
 Using an autocommand ~
 
-This is introduced in the user manual, section |41.14|.
+This is introduced in the user manual, section |51.4|.
 
 The autocommand is useful if you have a plugin that is a long Vim script file.
 You can define the autocommand and quickly quit the script with `:finish`.
@@ -2978,7 +2978,7 @@ The file "~/vim/bufnetfuncs.vim" should 
 
 Using an autoload script ~
 							*autoload* *E746*
-This is introduced in the user manual, section |41.15|.
+This is introduced in the user manual, section |51.5|.
 
 Using a script in the "autoload" directory is simpler, but requires using
 exactly the right file name.  A function that can be autoloaded has a name
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 8.2.  Last change: 2022 Feb 26
+*help.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 			VIM - main help file
 									 k
@@ -88,12 +88,15 @@ Tuning Vim ~
 |usr_43.txt|  Using filetypes
 |usr_44.txt|  Your own syntax highlighted
 |usr_45.txt|  Select your language
-|usr_46.txt|  Write plugins using Vim9 script
+
+Writing Vim scripts ~
+|usr_50.txt|  Advanced Vim script writing
+|usr_51.txt|  Create a plugin
+|usr_52.txt|  Write plugins using Vim9 script
 
 Making Vim Run ~
 |usr_90.txt|  Installing Vim
 
-
 REFERENCE MANUAL: These files explain every detail of Vim.	*reference_toc*
 
 General subjects ~
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1915,12 +1915,6 @@ 40.2	usr_40.txt	/*40.2*
 40.3	usr_40.txt	/*40.3*
 41.1	usr_41.txt	/*41.1*
 41.10	usr_41.txt	/*41.10*
-41.11	usr_41.txt	/*41.11*
-41.12	usr_41.txt	/*41.12*
-41.13	usr_41.txt	/*41.13*
-41.14	usr_41.txt	/*41.14*
-41.15	usr_41.txt	/*41.15*
-41.16	usr_41.txt	/*41.16*
 41.2	usr_41.txt	/*41.2*
 41.3	usr_41.txt	/*41.3*
 41.4	usr_41.txt	/*41.4*
@@ -1953,10 +1947,17 @@ 45.2	usr_45.txt	/*45.2*
 45.3	usr_45.txt	/*45.3*
 45.4	usr_45.txt	/*45.4*
 45.5	usr_45.txt	/*45.5*
-46.1	usr_46.txt	/*46.1*
-46.2	usr_46.txt	/*46.2*
-46.3	usr_46.txt	/*46.3*
-46.?	usr_46.txt	/*46.?*
+50.1	usr_50.txt	/*50.1*
+51.1	usr_51.txt	/*51.1*
+51.2	usr_51.txt	/*51.2*
+51.3	usr_51.txt	/*51.3*
+51.4	usr_51.txt	/*51.4*
+51.5	usr_51.txt	/*51.5*
+51.6	usr_51.txt	/*51.6*
+52.1	usr_52.txt	/*52.1*
+52.2	usr_52.txt	/*52.2*
+52.3	usr_52.txt	/*52.3*
+52.4	usr_52.txt	/*52.4*
 8g8	various.txt	/*8g8*
 90.1	usr_90.txt	/*90.1*
 90.2	usr_90.txt	/*90.2*
@@ -2026,7 +2027,7 @@ 90.5	usr_90.txt	/*90.5*
 :Break	terminal.txt	/*:Break*
 :Cfilter	quickfix.txt	/*:Cfilter*
 :Clear	terminal.txt	/*:Clear*
-:CompilerSet	usr_41.txt	/*:CompilerSet*
+:CompilerSet	usr_51.txt	/*:CompilerSet*
 :Continue	terminal.txt	/*:Continue*
 :DiffOrig	diff.txt	/*:DiffOrig*
 :DoMatchParen	pi_paren.txt	/*:DoMatchParen*
@@ -6493,7 +6494,7 @@ dircolors.vim	syntax.txt	/*dircolors.vim
 dis	motion.txt	/*dis*
 disable-menus	gui.txt	/*disable-menus*
 discard	editing.txt	/*discard*
-distribute-script	usr_41.txt	/*distribute-script*
+distribute-script	usr_51.txt	/*distribute-script*
 distribution	intro.txt	/*distribution*
 diw	motion.txt	/*diw*
 dl	change.txt	/*dl*
@@ -7028,11 +7029,11 @@ ft_rust.txt	ft_rust.txt	/*ft_rust.txt*
 ft_sql.txt	ft_sql.txt	/*ft_sql.txt*
 ftdetect	filetype.txt	/*ftdetect*
 ftp	pi_netrw.txt	/*ftp*
-ftplugin	usr_41.txt	/*ftplugin*
+ftplugin	usr_51.txt	/*ftplugin*
 ftplugin-docs	filetype.txt	/*ftplugin-docs*
 ftplugin-name	usr_05.txt	/*ftplugin-name*
 ftplugin-overrule	filetype.txt	/*ftplugin-overrule*
-ftplugin-special	usr_41.txt	/*ftplugin-special*
+ftplugin-special	usr_51.txt	/*ftplugin-special*
 ftplugins	usr_05.txt	/*ftplugins*
 fullcommand()	builtin.txt	/*fullcommand()*
 funcref()	builtin.txt	/*funcref()*
@@ -8860,8 +8861,8 @@ plaintex.vim	syntax.txt	/*plaintex.vim*
 plsql	ft_sql.txt	/*plsql*
 plugin	usr_05.txt	/*plugin*
 plugin-details	filetype.txt	/*plugin-details*
-plugin-filetype	usr_41.txt	/*plugin-filetype*
-plugin-special	usr_41.txt	/*plugin-special*
+plugin-filetype	usr_51.txt	/*plugin-filetype*
+plugin-special	usr_51.txt	/*plugin-special*
 plugin_name.txt	helphelp.txt	/*plugin_name.txt*
 pmbcs-option	print.txt	/*pmbcs-option*
 pmbfn-option	print.txt	/*pmbfn-option*
@@ -9409,7 +9410,7 @@ sound_playevent()	builtin.txt	/*sound_pl
 sound_playfile()	builtin.txt	/*sound_playfile()*
 sound_stop()	builtin.txt	/*sound_stop()*
 soundfold()	builtin.txt	/*soundfold()*
-source-vim9-script	usr_46.txt	/*source-vim9-script*
+source-vim9-script	usr_52.txt	/*source-vim9-script*
 space	intro.txt	/*space*
 spec-customizing	pi_spec.txt	/*spec-customizing*
 spec-how-to-use-it	pi_spec.txt	/*spec-how-to-use-it*
@@ -10171,8 +10172,8 @@ type-casting	vim9.txt	/*type-casting*
 type-checking	vim9.txt	/*type-checking*
 type-inference	vim9.txt	/*type-inference*
 type-mistakes	tips.txt	/*type-mistakes*
-typecorrect-settings	usr_41.txt	/*typecorrect-settings*
-typecorrect.txt	usr_41.txt	/*typecorrect.txt*
+typecorrect-settings	usr_51.txt	/*typecorrect-settings*
+typecorrect.txt	usr_51.txt	/*typecorrect.txt*
 typename()	builtin.txt	/*typename()*
 u	undo.txt	/*u*
 uganda	uganda.txt	/*uganda*
@@ -10189,8 +10190,8 @@ undo-remarks	undo.txt	/*undo-remarks*
 undo-tree	undo.txt	/*undo-tree*
 undo-two-ways	undo.txt	/*undo-two-ways*
 undo.txt	undo.txt	/*undo.txt*
-undo_ftplugin	usr_41.txt	/*undo_ftplugin*
-undo_indent	usr_41.txt	/*undo_indent*
+undo_ftplugin	usr_51.txt	/*undo_ftplugin*
+undo_indent	usr_51.txt	/*undo_indent*
 undofile()	builtin.txt	/*undofile()*
 undotree()	builtin.txt	/*undotree()*
 unicode	mbyte.txt	/*unicode*
@@ -10200,7 +10201,7 @@ unlisted-buffer	windows.txt	/*unlisted-b
 up-down-motions	motion.txt	/*up-down-motions*
 uppercase	change.txt	/*uppercase*
 urxvt-mouse	options.txt	/*urxvt-mouse*
-use-cpo-save	usr_41.txt	/*use-cpo-save*
+use-cpo-save	usr_51.txt	/*use-cpo-save*
 use-visual-cmds	version4.txt	/*use-visual-cmds*
 useful-mappings	tips.txt	/*useful-mappings*
 usenet	intro.txt	/*usenet*
@@ -10208,7 +10209,7 @@ user-cmd-ambiguous	map.txt	/*user-cmd-am
 user-commands	map.txt	/*user-commands*
 user-functions	eval.txt	/*user-functions*
 user-manual	usr_toc.txt	/*user-manual*
-using-<Plug>	usr_41.txt	/*using-<Plug>*
+using-<Plug>	usr_51.txt	/*using-<Plug>*
 using-menus	gui.txt	/*using-menus*
 using-scripts	repeat.txt	/*using-scripts*
 using-xxd	tips.txt	/*using-xxd*
@@ -10244,7 +10245,9 @@ usr_42.txt	usr_42.txt	/*usr_42.txt*
 usr_43.txt	usr_43.txt	/*usr_43.txt*
 usr_44.txt	usr_44.txt	/*usr_44.txt*
 usr_45.txt	usr_45.txt	/*usr_45.txt*
-usr_46.txt	usr_46.txt	/*usr_46.txt*
+usr_50.txt	usr_50.txt	/*usr_50.txt*
+usr_51.txt	usr_51.txt	/*usr_51.txt*
+usr_52.txt	usr_52.txt	/*usr_52.txt*
 usr_90.txt	usr_90.txt	/*usr_90.txt*
 usr_toc.txt	usr_toc.txt	/*usr_toc.txt*
 utf-8	mbyte.txt	/*utf-8*
@@ -10570,7 +10573,7 @@ vim9-const	vim9.txt	/*vim9-const*
 vim9-curly	vim9.txt	/*vim9-curly*
 vim9-debug	repeat.txt	/*vim9-debug*
 vim9-declaration	vim9.txt	/*vim9-declaration*
-vim9-declarations	usr_46.txt	/*vim9-declarations*
+vim9-declarations	usr_52.txt	/*vim9-declarations*
 vim9-differences	vim9.txt	/*vim9-differences*
 vim9-export	vim9.txt	/*vim9-export*
 vim9-final	vim9.txt	/*vim9-final*
@@ -10589,7 +10592,7 @@ vim9-rationale	vim9.txt	/*vim9-rationale
 vim9-reload	vim9.txt	/*vim9-reload*
 vim9-s-namespace	vim9.txt	/*vim9-s-namespace*
 vim9-scopes	vim9.txt	/*vim9-scopes*
-vim9-script-intro	usr_46.txt	/*vim9-script-intro*
+vim9-script-intro	usr_52.txt	/*vim9-script-intro*
 vim9-types	vim9.txt	/*vim9-types*
 vim9-unpack-ignore	vim9.txt	/*vim9-unpack-ignore*
 vim9-user-command	vim9.txt	/*vim9-user-command*
@@ -10772,15 +10775,15 @@ workshop	workshop.txt	/*workshop*
 workshop-support	workshop.txt	/*workshop-support*
 workshop.txt	workshop.txt	/*workshop.txt*
 wrap-off	intro.txt	/*wrap-off*
-write-compiler-plugin	usr_41.txt	/*write-compiler-plugin*
+write-compiler-plugin	usr_51.txt	/*write-compiler-plugin*
 write-device	editing.txt	/*write-device*
 write-fail	editing.txt	/*write-fail*
-write-filetype-plugin	usr_41.txt	/*write-filetype-plugin*
-write-library-script	usr_41.txt	/*write-library-script*
-write-local-help	usr_41.txt	/*write-local-help*
+write-filetype-plugin	usr_51.txt	/*write-filetype-plugin*
+write-library-script	usr_51.txt	/*write-library-script*
+write-local-help	usr_51.txt	/*write-local-help*
 write-permissions	editing.txt	/*write-permissions*
-write-plugin	usr_41.txt	/*write-plugin*
-write-plugin-quickload	usr_41.txt	/*write-plugin-quickload*
+write-plugin	usr_51.txt	/*write-plugin*
+write-plugin-quickload	usr_51.txt	/*write-plugin-quickload*
 write-quit	editing.txt	/*write-quit*
 write-readonly	editing.txt	/*write-readonly*
 writefile()	builtin.txt	/*writefile()*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2022 May 12
+*todo.txt*      For Vim version 8.2.  Last change: 2022 May 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -41,13 +41,20 @@ browser use: https://github.com/vim/vim/
 Once Vim9 is stable:
 - Use Vim9 for more runtime files.
 - Check code coverage, add more tests if needed.
-	vim9expr.c
 	vim9instr.c
 	vim9script.c
 	vim9type.c
 - Inlude new set of colors: #9795
 - Adjust intro message to say "help version9".
 
+Graduate FEAT_CINDENT and FEAT_SMARTINDENT ?
+
+Update the user manual:
+- Move most of usr_52.txt into usr_41.txt
+- Make usr_41.txt only about basic script writing
+- Fill usr_50.txt as an "advanced section" of usr_41.txt
+
+
 Further Vim9 improvements, possibly after launch:
 - Check performance with callgrind and kcachegrind.
     getline()/substitute()/setline() in #5632
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.2.  Last change: 2022 May 09
+*usr_41.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -19,12 +19,6 @@ script.  There are a lot of them, thus t
 |41.8|	Lists and Dictionaries
 |41.9|	Exceptions
 |41.10|	Various remarks
-|41.11|	Writing a plugin
-|41.12|	Writing a filetype plugin
-|41.13|	Writing a compiler plugin
-|41.14|	Writing a plugin that loads quickly
-|41.15|	Writing library scripts
-|41.16|	Distributing Vim scripts
 
      Next chapter: |usr_42.txt|  Add new menus
  Previous chapter: |usr_40.txt|  Make new commands
@@ -42,14 +36,10 @@ Syntax files are also Vim scripts.  As a
 specific file type.  A complicated macro can be defined by a separate Vim
 script file.  You can think of other uses yourself.
 
-	If you are familiar with Python, you can find a comparison between
-	Python and Vim script here, with pointers to other documents:
-	   https://gist.github.com/yegappan/16d964a37ead0979b05e655aa036cad0
-	And if you are familiar with JavaScript:
-	   https://w0rp.com/blog/post/vim-script-for-the-javascripter/
-
 Vim script comes in two flavors: legacy and |Vim9|.  Since this help file is
 for new users, we'll teach you the newer and more convenient |Vim9| syntax.
+While legacy script is particular for Vim, |Vim9| script looks more like other
+languages, such as JavaScript and TypeScript.
 
 To try out Vim script the best way is to edit a script file and source it.
 Basically: >
@@ -1929,839 +1919,6 @@ If you split your plugin into parts, you
 share items between those parts.  See `:export` for the details.
 
 ==============================================================================
-*41.11*	Writing a plugin				*write-plugin*
-
-You can write a Vim script in such a way that many people can use it.  This is
-called a plugin.  Vim users can drop your script in their plugin directory and
-use its features right away |add-plugin|.
-
-There are actually two types of plugins:
-
-  global plugins: For all types of files.
-filetype plugins: Only for files of a specific type.
-
-In this section the first type is explained.  Most items are also relevant for
-writing filetype plugins.  The specifics for filetype plugins are in the next
-section |write-filetype-plugin|.
-
-
-NAME
-
-First of all you must choose a name for your plugin.  The features provided
-by the plugin should be clear from its name.  And it should be unlikely that
-someone else writes a plugin with the same name but which does something
-different.
-
-A script that corrects typing mistakes could be called "typecorrect.vim".  We
-will use it here as an example.
-
-For the plugin to work for everybody, it should follow a few guidelines.  This
-will be explained step-by-step.  The complete example plugin is at the end.
-
-
-BODY
-
-Let's start with the body of the plugin, the lines that do the actual work: >
-
- 14	iabbrev teh the
- 15	iabbrev otehr other
- 16	iabbrev wnat want
- 17	iabbrev synchronisation
- 18		\ synchronization
-
-The actual list should be much longer, of course.
-
-The line numbers have only been added to explain a few things, don't put them
-in your plugin file!
-
-
-FIRST LINE
->
-  1	vim9script noclear
-
-You need to use `vimscript` as the very first command.  Best is to put it in
-the very first line.
-
-The script we are writing will have a `finish` command to bail out when it is
-loaded a second time.  To avoid the items defined in the script are lost the
-"noclear" argument is used.  More info about this at |vim9-reload|.
-
-
-HEADER
-
-You will probably add new corrections to the plugin and soon have several
-versions lying around.  And when distributing this file, people will want to
-know who wrote this wonderful plugin and where they can send remarks.
-Therefore, put a header at the top of your plugin: >
-
-  2	# Vim global plugin for correcting typing mistakes
-  3	# Last Change:	2021 Dec 30
-  4	# Maintainer:	Bram Moolenaar <Bram@vim.org>
-
-About copyright and licensing: Since plugins are very useful and it's hardly
-worth restricting their distribution, please consider making your plugin
-either public domain or use the Vim |license|.  A short note about this near
-the top of the plugin should be sufficient.  Example: >
-
-  5	# License:	This file is placed in the public domain.
-
-
-LINE CONTINUATION AND AVOIDING SIDE EFFECTS		 *use-cpo-save*
-
-In line 18 above, the line-continuation mechanism is used |line-continuation|.
-Users with 'compatible' set will run into trouble here, they will get an error
-message.  We can't just reset 'compatible', because that has a lot of side
-effects.  Instead, we will set the 'cpoptions' option to its Vim default
-value and restore it later.  That will allow the use of line-continuation and
-make the script work for most people.  It is done like this: >
-
- 11	var save_cpo = &cpo
- 12	set cpo&vim
- ..
- 42	&cpo = save_cpo
-
-We first store the old value of 'cpoptions' in the "save_cpo" variable.  At
-the end of the plugin this value is restored.
-
-Notice that "save_cpo" is a script-local variable.  A global variable could
-already be in use for something else.  Always use script-local variables for
-things that are only used in the script.
-
-
-NOT LOADING
-
-It is possible that a user doesn't always want to load this plugin.  Or the
-system administrator has dropped it in the system-wide plugin directory, but a
-user has his own plugin he wants to use.  Then the user must have a chance to
-disable loading this specific plugin.  These lines will make it possible: >
-
-  7	if exists("g:loaded_typecorrect")
-  8	  finish
-  9	endif
- 10	g:loaded_typecorrect = 1
-
-This also avoids that when the script is loaded twice it would pointlessly
-redefine functions and cause trouble for autocommands that are added twice.
-
-The name is recommended to start with "g:loaded_" and then the file name of
-the plugin, literally.  The "g:" is prepended to make the variable global, so
-that other places can check whether its functionality is available.  Without
-"g:" it would be local to the script.
-
-Using `finish` stops Vim from reading the rest of the file, it's much quicker
-than using if-endif around the whole file, since Vim would still need to parse
-the commands to find the `endif`.
-
-
-MAPPING
-
-Now let's make the plugin more interesting: We will add a mapping that adds a
-correction for the word under the cursor.  We could just pick a key sequence
-for this mapping, but the user might already use it for something else.  To
-allow the user to define which keys a mapping in a plugin uses, the <Leader>
-item can be used: >
-
- 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
-
-The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
-
-The user can set the "g:mapleader" variable to the key sequence that he wants
-plugin mappings to start with.  Thus if the user has done: >
-
-	g:mapleader = "_"
-
-the mapping will define "_a".  If the user didn't do this, the default value
-will be used, which is a backslash.  Then a map for "\a" will be defined.
-
-Note that <unique> is used, this will cause an error message if the mapping
-already happened to exist. |:map-<unique>|
-
-But what if the user wants to define his own key sequence?  We can allow that
-with this mechanism: >
-
- 21	if !hasmapto('<Plug>TypecorrAdd;')
- 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
- 23	endif
-
-This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
-defines the mapping from "<Leader>a" if it doesn't.  The user then has a
-chance of putting this in his vimrc file: >
-
-	map ,c  <Plug>TypecorrAdd;
-
-Then the mapped key sequence will be ",c" instead of "_a" or "\a".
-
-
-PIECES
-
-If a script gets longer, you often want to break up the work in pieces.  You
-can use functions or mappings for this.  But you don't want these functions
-and mappings to interfere with the ones from other scripts.  For example, you
-could define a function Add(), but another script could try to define the same
-function.  To avoid this, we define the function local to the script.
-Fortunately, in |Vim9| script this is the default.  In a legacy script you
-would need to prefix the name with "s:".
-
-We will define a function that adds a new typing correction: >
-
- 30	def Add(from: string, correct: bool)
- 31	  var to = input("type the correction for " .. from .. ": ")
- 32	  exe ":iabbrev " .. from .. " " .. to
- ..
- 36	enddef
-
-Now we can call the function Add() from within this script.  If another
-script also defines Add(), it will be local to that script and can only
-be called from that script.  There can also be a global g:Add() function,
-which is again another function.
-
-<SID> can be used with mappings.  It generates a script ID, which identifies
-the current script.  In our typing correction plugin we use it like this: >
-
- 24	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
- ..
- 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
-
-Thus when a user types "\a", this sequence is invoked: >
-
-	\a  ->  <Plug>TypecorrAdd;  ->  <SID>Add  ->  :call <SID>Add(...)
-
-If another script also maps <SID>Add, it will get another script ID and
-thus define another mapping.
-
-Note that instead of Add() we use <SID>Add() here.  That is because the
-mapping is typed by the user, thus outside of the script context.  The <SID>
-is translated to the script ID, so that Vim knows in which script to look for
-the Add() function.
-
-This is a bit complicated, but it's required for the plugin to work together
-with other plugins.  The basic rule is that you use <SID>Add() in mappings and
-Add() in other places (the script itself, autocommands, user commands).
-
-We can also add a menu entry to do the same as the mapping: >
-
- 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
-
-The "Plugin" menu is recommended for adding menu items for plugins.  In this
-case only one item is used.  When adding more items, creating a submenu is
-recommended.  For example, "Plugin.CVS" could be used for a plugin that offers
-CVS operations "Plugin.CVS.checkin", "Plugin.CVS.checkout", etc.
-
-Note that in line 28 ":noremap" is used to avoid that any other mappings cause
-trouble.  Someone may have remapped ":call", for example.  In line 24 we also
-use ":noremap", but we do want "<SID>Add" to be remapped.  This is why
-"<script>" is used here.  This only allows mappings which are local to the
-script. |:map-<script>|  The same is done in line 26 for ":noremenu".
-|:menu-<script>|
-
-
-<SID> AND <Plug>					*using-<Plug>*
-
-Both <SID> and <Plug> are used to avoid that mappings of typed keys interfere
-with mappings that are only to be used from other mappings.  Note the
-difference between using <SID> and <Plug>:
-
-<Plug>	is visible outside of the script.  It is used for mappings which the
-	user might want to map a key sequence to.  <Plug> is a special code
-	that a typed key will never produce.
-	To make it very unlikely that other plugins use the same sequence of
-	characters, use this structure: <Plug> scriptname mapname
-	In our example the scriptname is "Typecorr" and the mapname is "Add".
-	We add a semicolon as the terminator.  This results in
-	"<Plug>TypecorrAdd;".  Only the first character of scriptname and
-	mapname is uppercase, so that we can see where mapname starts.
-
-<SID>	is the script ID, a unique identifier for a script.
-	Internally Vim translates <SID> to "<SNR>123_", where "123" can be any
-	number.  Thus a function "<SID>Add()" will have a name "<SNR>11_Add()"
-	in one script, and "<SNR>22_Add()" in another.  You can see this if
-	you use the ":function" command to get a list of functions.  The
-	translation of <SID> in mappings is exactly the same, that's how you
-	can call a script-local function from a mapping.
-
-
-USER COMMAND
-
-Now let's add a user command to add a correction: >
-
- 38	if !exists(":Correct")
- 39	  command -nargs=1  Correct  :call Add(<q-args>, false)
- 40	endif
-
-The user command is defined only if no command with the same name already
-exists.  Otherwise we would get an error here.  Overriding the existing user
-command with ":command!" is not a good idea, this would probably make the user
-wonder why the command he defined himself doesn't work.  |:command|
-If it did happen you can find out who to blame with: >
-
-	verbose command Correct
-
-
-SCRIPT VARIABLES
-
-When a variable starts with "s:" it is a script variable.  It can only be used
-inside a script.  Outside the script it's not visible.  This avoids trouble
-with using the same variable name in different scripts.  The variables will be
-kept as long as Vim is running.  And the same variables are used when sourcing
-the same script again. |s:var|
-
-The nice thing about |Vim9| script is that variables are local to the script
-by default.  You can prepend "s:" if you like, but you do not need to.  And
-functions in the script can also use the script variables without a prefix.
-
-Script-local variables can also be used in functions, autocommands and user
-commands that are defined in the script.  Thus they are the perfect way to
-share information between parts of your plugin, without it leaking out.  In
-our example we can add a few lines to count the number of corrections: >
-
- 19	var count = 4
- ..
- 30	def Add(from: string, correct: bool)
- ..
- 34	  count += 1
- 35	  echo "you now have " .. count .. " corrections"
- 36	enddef
-
-"count" is declared and initialized to 4 in the script itself.  When later
-the Add() function is called, it increments "count".  It doesn't matter from
-where the function was called, since it has been defined in the script, it
-will use the local variables from this script.
-
-
-THE RESULT
-
-Here is the resulting complete example: >
-
-  1	vim9script noclear
-  2	# Vim global plugin for correcting typing mistakes
-  3	# Last Change:	2021 Dec 30
-  4	# Maintainer:	Bram Moolenaar <Bram@vim.org>
-  5	# License:	This file is placed in the public domain.
-  6
-  7	if exists("g:loaded_typecorrect")
-  8	  finish
-  9	endif
- 10	g:loaded_typecorrect = 1
- 11	var save_cpo = &cpo
- 12	set cpo&vim
- 13
- 14	iabbrev teh the
- 15	iabbrev otehr other
- 16	iabbrev wnat want
- 17	iabbrev synchronisation
- 18		\ synchronization
- 19	var count = 4
- 20
- 21	if !hasmapto('<Plug>TypecorrAdd;')
- 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
- 23	endif
- 24	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
- 25
- 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
- 27
- 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
- 29
- 30	def Add(from: string, correct: bool)
- 31	  var to = input("type the correction for " .. from .. ": ")
- 32	  exe ":iabbrev " .. from .. " " .. to
- 33	  if correct | exe "normal viws\<C-R>\" \b\e" | endif
- 34	  count += 1
- 35	  echo "you now have " .. count .. " corrections"
- 36	enddef
- 37
- 38	if !exists(":Correct")
- 39	  command -nargs=1  Correct  call Add(<q-args>, false)
- 40	endif
- 41
- 42	&cpo = save_cpo
-
-Line 33 wasn't explained yet.  It applies the new correction to the word under
-the cursor.  The |:normal| command is used to use the new abbreviation.  Note
-that mappings and abbreviations are expanded here, even though the function
-was called from a mapping defined with ":noremap".
-
-
-DOCUMENTATION						*write-local-help*
-
-It's a good idea to also write some documentation for your plugin.  Especially
-when its behavior can be changed by the user.  See |add-local-help| for how
-they are installed.
-
-Here is a simple example for a plugin help file, called "typecorrect.txt": >
-
-  1	*typecorrect.txt*	Plugin for correcting typing mistakes
-  2
-  3	If you make typing mistakes, this plugin will have them corrected
-  4	automatically.
-  5
-  6	There are currently only a few corrections.  Add your own if you like.
-  7
-  8	Mappings:
-  9	<Leader>a   or   <Plug>TypecorrAdd;
- 10		Add a correction for the word under the cursor.
- 11
- 12	Commands:
- 13	:Correct {word}
- 14		Add a correction for {word}.
- 15
- 16							*typecorrect-settings*
- 17	This plugin doesn't have any settings.
-
-The first line is actually the only one for which the format matters.  It will
-be extracted from the help file to be put in the "LOCAL ADDITIONS:" section of
-help.txt |local-additions|.  The first "*" must be in the first column of the
-first line.  After adding your help file do ":help" and check that the entries
-line up nicely.
-
-You can add more tags inside ** in your help file.  But be careful not to use
-existing help tags.  You would probably use the name of your plugin in most of
-them, like "typecorrect-settings" in the example.
-
-Using references to other parts of the help in || is recommended.  This makes
-it easy for the user to find associated help.
-
-
-FILETYPE DETECTION					*plugin-filetype*
-
-If your filetype is not already detected by Vim, you should create a filetype
-detection snippet in a separate file.  It is usually in the form of an
-autocommand that sets the filetype when the file name matches a pattern.
-Example: >
-
-	au BufNewFile,BufRead *.foo		setlocal filetype=foofoo
-
-Write this single-line file as "ftdetect/foofoo.vim" in the first directory
-that appears in 'runtimepath'.  For Unix that would be
-"~/.vim/ftdetect/foofoo.vim".  The convention is to use the name of the
-filetype for the script name.
-
-You can make more complicated checks if you like, for example to inspect the
-contents of the file to recognize the language.  Also see |new-filetype|.
-
-
-SUMMARY							*plugin-special*
-
-Summary of special things to use in a plugin:
-
-var name		Variable local to the script.
-
-<SID>			Script-ID, used for mappings and functions local to
-			the script.
-
-hasmapto()		Function to test if the user already defined a mapping
-			for functionality the script offers.
-
-<Leader>		Value of "mapleader", which the user defines as the
-			keys that plugin mappings start with.
-
-map <unique>		Give a warning if a mapping already exists.
-
-noremap <script>	Use only mappings local to the script, not global
-			mappings.
-
-exists(":Cmd")		Check if a user command already exists.
-
-==============================================================================
-*41.12*	Writing a filetype plugin	*write-filetype-plugin* *ftplugin*
-
-A filetype plugin is like a global plugin, except that it sets options and
-defines mappings for the current buffer only.  See |add-filetype-plugin| for
-how this type of plugin is used.
-
-First read the section on global plugins above |41.11|.  All that is said there
-also applies to filetype plugins.  There are a few extras, which are explained
-here.  The essential thing is that a filetype plugin should only have an
-effect on the current buffer.
-
-
-DISABLING
-
-If you are writing a filetype plugin to be used by many people, they need a
-chance to disable loading it.  Put this at the top of the plugin: >
-
-	# Only do this when not done yet for this buffer
-	if exists("b:did_ftplugin")
-	  finish
-	endif
-	b:did_ftplugin = 1
-
-This also needs to be used to avoid that the same plugin is executed twice for
-the same buffer (happens when using an ":edit" command without arguments).
-
-Now users can disable loading the default plugin completely by making a
-filetype plugin with only these lines: >
-
-	vim9script
-	b:did_ftplugin = 1
-
-This does require that the filetype plugin directory comes before $VIMRUNTIME
-in 'runtimepath'!
-
-If you do want to use the default plugin, but overrule one of the settings,
-you can write the different setting in a script: >
-
-	setlocal textwidth=70
-
-Now write this in the "after" directory, so that it gets sourced after the
-distributed "vim.vim" ftplugin |after-directory|.  For Unix this would be
-"~/.vim/after/ftplugin/vim.vim".  Note that the default plugin will have set
-"b:did_ftplugin", but it is ignored here.
-
-
-OPTIONS
-
-To make sure the filetype plugin only affects the current buffer use the >
-
-	setlocal
-
-command to set options.  And only set options which are local to a buffer (see
-the help for the option to check that).  When using `:setlocal` for global
-options or options local to a window, the value will change for many buffers,
-and that is not what a filetype plugin should do.
-
-When an option has a value that is a list of flags or items, consider using
-"+=" and "-=" to keep the existing value.  Be aware that the user may have
-changed an option value already.  First resetting to the default value and
-then changing it is often a good idea.  Example: >
-
-	setlocal formatoptions& formatoptions+=ro
-
-
-MAPPINGS
-
-To make sure mappings will only work in the current buffer use the >
-
-	map <buffer>
-
-command.  This needs to be combined with the two-step mapping explained above.
-An example of how to define functionality in a filetype plugin: >
-
-	if !hasmapto('<Plug>JavaImport;')
-	  map <buffer> <unique> <LocalLeader>i <Plug>JavaImport;
-	endif
-	noremap <buffer> <unique> <Plug>JavaImport; oimport ""<Left><Esc>
-
-|hasmapto()| is used to check if the user has already defined a map to
-<Plug>JavaImport;.  If not, then the filetype plugin defines the default
-mapping.  This starts with |<LocalLeader>|, which allows the user to select
-the key(s) he wants filetype plugin mappings to start with.  The default is a
-backslash.
-"<unique>" is used to give an error message if the mapping already exists or
-overlaps with an existing mapping.
-|:noremap| is used to avoid that any other mappings that the user has defined
-interferes.  You might want to use ":noremap <script>" to allow remapping
-mappings defined in this script that start with <SID>.
-
-The user must have a chance to disable the mappings in a filetype plugin,
-without disabling everything.  Here is an example of how this is done for a
-plugin for the mail filetype: >
-
-	# Add mappings, unless the user didn't want this.
-	if !exists("g:no_plugin_maps") && !exists("g:no_mail_maps")
-	  # Quote text by inserting "> "
-	  if !hasmapto('<Plug>MailQuote;')
-	    vmap <buffer> <LocalLeader>q <Plug>MailQuote;
-	    nmap <buffer> <LocalLeader>q <Plug>MailQuote;
-	  endif
-	  vnoremap <buffer> <Plug>MailQuote; :s/^/> /<CR>
-	  nnoremap <buffer> <Plug>MailQuote; :.,$s/^/> /<CR>
-	endif
-
-Two global variables are used:
-|g:no_plugin_maps|	disables mappings for all filetype plugins
-|g:no_mail_maps|	disables mappings for the "mail" filetype
-
-
-USER COMMANDS
-
-To add a user command for a specific file type, so that it can only be used in
-one buffer, use the "-buffer" argument to |:command|.  Example: >
-
-	command -buffer  Make  make %:r.s
-
-
-VARIABLES
-
-A filetype plugin will be sourced for each buffer of the type it's for.  Local
-script variables will be shared between all invocations.  Use local buffer
-variables |b:var| if you want a variable specifically for one buffer.
-
-
-FUNCTIONS
-
-When defining a function, this only needs to be done once.  But the filetype
-plugin will be sourced every time a file with this filetype will be opened.
-This construct makes sure the function is only defined once: >
-
-	if !exists("*Func")
-	  def Func(arg)
-	    ...
-	  enddef
-	endif
-<
-
-UNDO						*undo_indent* *undo_ftplugin*
-
-When the user does ":setfiletype xyz" the effect of the previous filetype
-should be undone.  Set the b:undo_ftplugin variable to the commands that will
-undo the settings in your filetype plugin.  Example: >
-
-	let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
-		\ .. "| unlet b:match_ignorecase b:match_words b:match_skip"
-
-Using ":setlocal" with "<" after the option name resets the option to its
-global value.  That is mostly the best way to reset the option value.
-
-This does require removing the "C" flag from 'cpoptions' to allow line
-continuation, as mentioned above |use-cpo-save|.
-
-For undoing the effect of an indent script, the b:undo_indent variable should
-be set accordingly.
-
-Both these variables use legacy script syntax, not |Vim9| syntax.
-
-
-FILE NAME
-
-The filetype must be included in the file name |ftplugin-name|.  Use one of
-these three forms:
-
-	.../ftplugin/stuff.vim
-	.../ftplugin/stuff_foo.vim
-	.../ftplugin/stuff/bar.vim
-
-"stuff" is the filetype, "foo" and "bar" are arbitrary names.
-
-
-SUMMARY							*ftplugin-special*
-
-Summary of special things to use in a filetype plugin:
-
-<LocalLeader>		Value of "maplocalleader", which the user defines as
-			the keys that filetype plugin mappings start with.
-
-map <buffer>		Define a mapping local to the buffer.
-
-noremap <script>	Only remap mappings defined in this script that start
-			with <SID>.
-
-setlocal		Set an option for the current buffer only.
-
-command -buffer	Define a user command local to the buffer.
-
-exists("*s:Func")	Check if a function was already defined.
-
-Also see |plugin-special|, the special things used for all plugins.
-
-==============================================================================
-*41.13*	Writing a compiler plugin		*write-compiler-plugin*
-
-A compiler plugin sets options for use with a specific compiler.  The user can
-load it with the |:compiler| command.  The main use is to set the
-'errorformat' and 'makeprg' options.
-
-Easiest is to have a look at examples.  This command will edit all the default
-compiler plugins: >
-
-	next $VIMRUNTIME/compiler/*.vim
-
-Type `:next` to go to the next plugin file.
-
-There are two special items about these files.  First is a mechanism to allow
-a user to overrule or add to the default file.  The default files start with: >
-
-	vim9script
-	if exists("g:current_compiler")
-	  finish
-	endif
-	g:current_compiler = "mine"
-
-When you write a compiler file and put it in your personal runtime directory
-(e.g., ~/.vim/compiler for Unix), you set the "current_compiler" variable to
-make the default file skip the settings.
-							*:CompilerSet*
-The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for
-":compiler".  Vim defines the ":CompilerSet" user command for this.  However,
-older Vim versions don't, thus your plugin should define it then.  This is an
-example: >
-
-  if exists(":CompilerSet") != 2
-    command -nargs=* CompilerSet setlocal <args>
-  endif
-  CompilerSet errorformat&		" use the default 'errorformat'
-  CompilerSet makeprg=nmake
-
-When you write a compiler plugin for the Vim distribution or for a system-wide
-runtime directory, use the mechanism mentioned above.  When
-"current_compiler" was already set by a user plugin nothing will be done.
-
-When you write a compiler plugin to overrule settings from a default plugin,
-don't check "current_compiler".  This plugin is supposed to be loaded
-last, thus it should be in a directory at the end of 'runtimepath'.  For Unix
-that could be ~/.vim/after/compiler.
-
-==============================================================================
-*41.14*	Writing a plugin that loads quickly	*write-plugin-quickload*
-
-A plugin may grow and become quite long.  The startup delay may become
-noticeable, while you hardly ever use the plugin.  Then it's time for a
-quickload plugin.
-
-The basic idea is that the plugin is loaded twice.  The first time user
-commands and mappings are defined that offer the functionality.  The second
-time the functions that implement the functionality are defined.
-
-It may sound surprising that quickload means loading a script twice.  What we
-mean is that it loads quickly the first time, postponing the bulk of the
-script to the second time, which only happens when you actually use it.  When
-you always use the functionality it actually gets slower!
-
-This uses a FuncUndefined autocommand.  Since Vim 7 there is an alternative:
-use the |autoload| functionality |41.15|.  That will also use |Vim9| script
-instead of legacy script that is used here.
-
-The following example shows how it's done: >
-
-	" Vim global plugin for demonstrating quick loading
-	" Last Change:	2005 Feb 25
-	" Maintainer:	Bram Moolenaar <Bram@vim.org>
-	" License:	This file is placed in the public domain.
-
-	if !exists("s:did_load")
-		command -nargs=* BNRead  call BufNetRead(<f-args>)
-		map <F19> :call BufNetWrite('something')<CR>
-
-		let s:did_load = 1
-		exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
-		finish
-	endif
-
-	function BufNetRead(...)
-		echo 'BufNetRead(' .. string(a:000) .. ')'
-		" read functionality here
-	endfunction
-
-	function BufNetWrite(...)
-		echo 'BufNetWrite(' .. string(a:000) .. ')'
-		" write functionality here
-	endfunction
-
-When the script is first loaded "s:did_load" is not set.  The commands between
-the "if" and "endif" will be executed.  This ends in a |:finish| command, thus
-the rest of the script is not executed.
-
-The second time the script is loaded "s:did_load" exists and the commands
-after the "endif" are executed.  This defines the (possible long)
-BufNetRead() and BufNetWrite() functions.
-
-If you drop this script in your plugin directory Vim will execute it on
-startup.  This is the sequence of events that happens:
-
-1. The "BNRead" command is defined and the <F19> key is mapped when the script
-   is sourced at startup.  A |FuncUndefined| autocommand is defined.  The
-   ":finish" command causes the script to terminate early.
-
-2. The user types the BNRead command or presses the <F19> key.  The
-   BufNetRead() or BufNetWrite() function will be called.
-
-3. Vim can't find the function and triggers the |FuncUndefined| autocommand
-   event.  Since the pattern "BufNet*" matches the invoked function, the
-   command "source fname" will be executed.  "fname" will be equal to the name
-   of the script, no matter where it is located, because it comes from
-   expanding "<sfile>" (see |expand()|).
-
-4. The script is sourced again, the "s:did_load" variable exists and the
-   functions are defined.
-
-Notice that the functions that are loaded afterwards match the pattern in the
-|FuncUndefined| autocommand.  You must make sure that no other plugin defines
-functions that match this pattern.
-
-==============================================================================
-*41.15*	Writing library scripts			*write-library-script*
-
-Some functionality will be required in several places.  When this becomes more
-than a few lines you will want to put it in one script and use it from many
-scripts.  We will call that one script a library script.
-
-Manually loading a library script is possible, so long as you avoid loading it
-when it's already done.  You can do this with the |exists()| function.
-Example: >
-
-	if !exists('*MyLibFunction')
-	   runtime library/mylibscript.vim
-	endif
-	MyLibFunction(arg)
-
-Here you need to know that MyLibFunction() is defined in a script
-"library/mylibscript.vim" in one of the directories in 'runtimepath'.
-
-To make this a bit simpler Vim offers the autoload mechanism.  Then the
-example looks like this: >
-
-	mylib#myfunction(arg)
-
-That's a lot simpler, isn't it?  Vim will recognize the function name by the
-embedded "#" character and when it's not defined search for the script
-"autoload/mylib.vim" in 'runtimepath'.  That script must define the
-"mylib#myfunction()" function.
-
-You can put many other functions in the mylib.vim script, you are free to
-organize your functions in library scripts.  But you must use function names
-where the part before the '#' matches the script name.  Otherwise Vim would
-not know what script to load.
-
-If you get really enthusiastic and write lots of library scripts, you may
-want to use subdirectories.  Example: >
-
-	netlib#ftp#read('somefile')
-
-For Unix the library script used for this could be:
-
-	~/.vim/autoload/netlib/ftp.vim
-
-Where the function is defined like this: >
-
-	def netlib#ftp#read(fname: string)
-		#  Read the file fname through ftp
-	enddef
-
-Notice that the name the function is defined with is exactly the same as the
-name used for calling the function.  And the part before the last '#'
-exactly matches the subdirectory and script name.
-
-You can use the same mechanism for variables: >
-
-	var weekdays = dutch#weekdays
-
-This will load the script "autoload/dutch.vim", which should contain something
-like: >
-
-	var dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
-		\ 'donderdag', 'vrijdag', 'zaterdag']
-
-Further reading: |autoload|.
-
-==============================================================================
-*41.16*	Distributing Vim scripts			*distribute-script*
-
-Vim users will look for scripts on the Vim website: http://www.vim.org.
-If you made something that is useful for others, share it!
-
-Another place is github.  But there you need to know where to find it!  The
-advantage is that most plugin managers fetch plugins from github.  You'll have
-to use your favorite search engine to find them.
-
-Vim scripts can be used on any system.  However, there might not be a tar or
-gzip command.  If you want to pack files together and/or compress them the
-"zip" utility is recommended.
-
-For utmost portability use Vim itself to pack scripts together.  This can be
-done with the Vimball utility.  See |vimball|.
-
-It's good if you add a line to allow automatic updating.  See |glvs-plugins|.
-
-==============================================================================
 
 Next chapter: |usr_42.txt|  Add new menus
 
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -1,4 +1,4 @@
-*usr_45.txt*	For Vim version 8.2.  Last change: 2020 Jun 11
+*usr_45.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -15,7 +15,7 @@ in various languages is explained.
 |45.4|	Editing files with a different encoding
 |45.5|	Entering language text
 
-     Next chapter: |usr_46.txt|  Write plugins using Vim9 script
+     Next chapter: |usr_50.txt|  Advanced Vim script writing
  Previous chapter: |usr_44.txt|  Your own syntax highlighted
 Table of contents: |usr_toc.txt|
 
@@ -408,6 +408,6 @@ Don't type the spaces.  See |i_CTRL-V_di
 
 ==============================================================================
 
-Next chapter: |usr_46.txt|  Write plugins using Vim9 script
+Next chapter: |usr_50.txt|  Advanced Vim script writing
 
 Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
new file mode 100644
--- /dev/null
+++ b/runtime/doc/usr_50.txt
@@ -0,0 +1,25 @@
+*usr_50.txt*	For Vim version 8.2.  Last change: 2022 May 13
+
+		     VIM USER MANUAL - by Bram Moolenaar
+
+			 Advanced Vim script writing
+
+
+TODO - this chapter is to be written
+
+|50.1|	Writing stuff
+
+     Next chapter: |usr_51.txt|  Create a plugin
+ Previous chapter: |usr_45.txt|  Select your language (local)
+Table of contents: |usr_toc.txt|
+
+==============================================================================
+*50.1*	Writing stuff
+
+TODO
+
+==============================================================================
+
+Next chapter: |usr_51.txt|  Create a plugin
+
+Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
new file mode 100644
--- /dev/null
+++ b/runtime/doc/usr_51.txt
@@ -0,0 +1,860 @@
+*usr_51.txt*	For Vim version 8.2.  Last change: 2022 May 13
+
+		     VIM USER MANUAL - by Bram Moolenaar
+
+			      Write plugins
+
+
+Plugins can be used to define settings for a specific type of file, syntax
+highlighting and many other things.  This chapter explains how to write the
+most common Vim plugins.
+
+|51.1|	Writing a generic plugin
+|51.2|	Writing a filetype plugin
+|51.3|	Writing a compiler plugin
+|51.4|	Writing a plugin that loads quickly
+|51.5|	Writing library scripts
+|51.6|	Distributing Vim scripts
+
+     Next chapter: |usr_52.txt|  Write plugins using Vim9 script
+ Previous chapter: |usr_50.txt|  Advanced Vim script writing
+Table of contents: |usr_toc.txt|
+
+==============================================================================
+*51.1*	Writing a generic plugin			*write-plugin*
+
+You can write a Vim script in such a way that many people can use it.  This is
+called a plugin.  Vim users can drop your script in their plugin directory and
+use its features right away |add-plugin|.
+
+There are actually two types of plugins:
+
+  global plugins: For all types of files.
+filetype plugins: Only for files of a specific type.
+
+In this section the first type is explained.  Most items are also relevant for
+writing filetype plugins.  The specifics for filetype plugins are in the next
+section |write-filetype-plugin|.
+
+
+NAME
+
+First of all you must choose a name for your plugin.  The features provided
+by the plugin should be clear from its name.  And it should be unlikely that
+someone else writes a plugin with the same name but which does something
+different.
+
+A script that corrects typing mistakes could be called "typecorrect.vim".  We
+will use it here as an example.
+
+For the plugin to work for everybody, it should follow a few guidelines.  This
+will be explained step-by-step.  The complete example plugin is at the end.
+
+
+BODY
+
+Let's start with the body of the plugin, the lines that do the actual work: >
+
+ 14	iabbrev teh the
+ 15	iabbrev otehr other
+ 16	iabbrev wnat want
+ 17	iabbrev synchronisation
+ 18		\ synchronization
+
+The actual list should be much longer, of course.
+
+The line numbers have only been added to explain a few things, don't put them
+in your plugin file!
+
+
+FIRST LINE
+>
+  1	vim9script noclear
+
+You need to use `vimscript` as the very first command.  Best is to put it in
+the very first line.
+
+The script we are writing will have a `finish` command to bail out when it is
+loaded a second time.  To avoid that the items defined in the script are lost
+the "noclear" argument is used.  More info about this at |vim9-reload|.
+
+
+HEADER
+
+You will probably add new corrections to the plugin and soon have several
+versions lying around.  And when distributing this file, people will want to
+know who wrote this wonderful plugin and where they can send remarks.
+Therefore, put a header at the top of your plugin: >
+
+  2	# Vim global plugin for correcting typing mistakes
+  3	# Last Change:	2021 Dec 30
+  4	# Maintainer:	Bram Moolenaar <Bram@vim.org>
+
+About copyright and licensing: Since plugins are very useful and it's hardly
+worth restricting their distribution, please consider making your plugin
+either public domain or use the Vim |license|.  A short note about this near
+the top of the plugin should be sufficient.  Example: >
+
+  5	# License:	This file is placed in the public domain.
+
+
+LINE CONTINUATION AND AVOIDING SIDE EFFECTS		 *use-cpo-save*
+
+In line 18 above, the line-continuation mechanism is used |line-continuation|.
+Users with 'compatible' set will run into trouble here, they will get an error
+message.  We can't just reset 'compatible', because that has a lot of side
+effects.  Instead, we will set the 'cpoptions' option to its Vim default
+value and restore it later.  That will allow the use of line-continuation and
+make the script work for most people.  It is done like this: >
+
+ 11	var save_cpo = &cpo
+ 12	set cpo&vim
+ ..
+ 42	&cpo = save_cpo
+
+We first store the old value of 'cpoptions' in the "save_cpo" variable.  At
+the end of the plugin this value is restored.
+
+Notice that "save_cpo" is a script-local variable.  A global variable could
+already be in use for something else.  Always use script-local variables for
+things that are only used in the script.
+
+
+NOT LOADING
+
+It is possible that a user doesn't always want to load this plugin.  Or the
+system administrator has dropped it in the system-wide plugin directory, but a
+user has his own plugin he wants to use.  Then the user must have a chance to
+disable loading this specific plugin.  These lines will make it possible: >
+
+  7	if exists("g:loaded_typecorrect")
+  8	  finish
+  9	endif
+ 10	g:loaded_typecorrect = 1
+
+This also avoids that when the script is loaded twice it would pointlessly
+redefine functions and cause trouble for autocommands that are added twice.
+
+The name is recommended to start with "g:loaded_" and then the file name of
+the plugin, literally.  The "g:" is prepended to make the variable global, so
+that other places can check whether its functionality is available.  Without
+"g:" it would be local to the script.
+
+Using `finish` stops Vim from reading the rest of the file, it's much quicker
+than using if-endif around the whole file, since Vim would still need to parse
+the commands to find the `endif`.
+
+
+MAPPING
+
+Now let's make the plugin more interesting: We will add a mapping that adds a
+correction for the word under the cursor.  We could just pick a key sequence
+for this mapping, but the user might already use it for something else.  To
+allow the user to define which keys a mapping in a plugin uses, the <Leader>
+item can be used: >
+
+ 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
+
+The "<Plug>TypecorrAdd;" thing will do the work, more about that further on.
+
+The user can set the "g:mapleader" variable to the key sequence that he wants
+plugin mappings to start with.  Thus if the user has done: >
+
+	g:mapleader = "_"
+
+the mapping will define "_a".  If the user didn't do this, the default value
+will be used, which is a backslash.  Then a map for "\a" will be defined.
+
+Note that <unique> is used, this will cause an error message if the mapping
+already happened to exist. |:map-<unique>|
+
+But what if the user wants to define his own key sequence?  We can allow that
+with this mechanism: >
+
+ 21	if !hasmapto('<Plug>TypecorrAdd;')
+ 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
+ 23	endif
+
+This checks if a mapping to "<Plug>TypecorrAdd;" already exists, and only
+defines the mapping from "<Leader>a" if it doesn't.  The user then has a
+chance of putting this in his vimrc file: >
+
+	map ,c  <Plug>TypecorrAdd;
+
+Then the mapped key sequence will be ",c" instead of "_a" or "\a".
+
+
+PIECES
+
+If a script gets longer, you often want to break up the work in pieces.  You
+can use functions or mappings for this.  But you don't want these functions
+and mappings to interfere with the ones from other scripts.  For example, you
+could define a function Add(), but another script could try to define the same
+function.  To avoid this, we define the function local to the script.
+Fortunately, in |Vim9| script this is the default.  In a legacy script you
+would need to prefix the name with "s:".
+
+We will define a function that adds a new typing correction: >
+
+ 30	def Add(from: string, correct: bool)
+ 31	  var to = input("type the correction for " .. from .. ": ")
+ 32	  exe ":iabbrev " .. from .. " " .. to
+ ..
+ 36	enddef
+
+Now we can call the function Add() from within this script.  If another
+script also defines Add(), it will be local to that script and can only
+be called from that script.  There can also be a global g:Add() function,
+which is again another function.
+
+<SID> can be used with mappings.  It generates a script ID, which identifies
+the current script.  In our typing correction plugin we use it like this: >
+
+ 24	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
+ ..
+ 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
+
+Thus when a user types "\a", this sequence is invoked: >
+
+	\a  ->  <Plug>TypecorrAdd;  ->  <SID>Add  ->  :call <SID>Add(...)
+
+If another script also maps <SID>Add, it will get another script ID and
+thus define another mapping.
+
+Note that instead of Add() we use <SID>Add() here.  That is because the
+mapping is typed by the user, thus outside of the script context.  The <SID>
+is translated to the script ID, so that Vim knows in which script to look for
+the Add() function.
+
+This is a bit complicated, but it's required for the plugin to work together
+with other plugins.  The basic rule is that you use <SID>Add() in mappings and
+Add() in other places (the script itself, autocommands, user commands).
+
+We can also add a menu entry to do the same as the mapping: >
+
+ 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
+
+The "Plugin" menu is recommended for adding menu items for plugins.  In this
+case only one item is used.  When adding more items, creating a submenu is
+recommended.  For example, "Plugin.CVS" could be used for a plugin that offers
+CVS operations "Plugin.CVS.checkin", "Plugin.CVS.checkout", etc.
+
+Note that in line 28 ":noremap" is used to avoid that any other mappings cause
+trouble.  Someone may have remapped ":call", for example.  In line 24 we also
+use ":noremap", but we do want "<SID>Add" to be remapped.  This is why
+"<script>" is used here.  This only allows mappings which are local to the
+script. |:map-<script>|  The same is done in line 26 for ":noremenu".
+|:menu-<script>|
+
+
+<SID> AND <Plug>					*using-<Plug>*
+
+Both <SID> and <Plug> are used to avoid that mappings of typed keys interfere
+with mappings that are only to be used from other mappings.  Note the
+difference between using <SID> and <Plug>:
+
+<Plug>	is visible outside of the script.  It is used for mappings which the
+	user might want to map a key sequence to.  <Plug> is a special code
+	that a typed key will never produce.
+	To make it very unlikely that other plugins use the same sequence of
+	characters, use this structure: <Plug> scriptname mapname
+	In our example the scriptname is "Typecorr" and the mapname is "Add".
+	We add a semicolon as the terminator.  This results in
+	"<Plug>TypecorrAdd;".  Only the first character of scriptname and
+	mapname is uppercase, so that we can see where mapname starts.
+
+<SID>	is the script ID, a unique identifier for a script.
+	Internally Vim translates <SID> to "<SNR>123_", where "123" can be any
+	number.  Thus a function "<SID>Add()" will have a name "<SNR>11_Add()"
+	in one script, and "<SNR>22_Add()" in another.  You can see this if
+	you use the ":function" command to get a list of functions.  The
+	translation of <SID> in mappings is exactly the same, that's how you
+	can call a script-local function from a mapping.
+
+
+USER COMMAND
+
+Now let's add a user command to add a correction: >
+
+ 38	if !exists(":Correct")
+ 39	  command -nargs=1  Correct  :call Add(<q-args>, false)
+ 40	endif
+
+The user command is defined only if no command with the same name already
+exists.  Otherwise we would get an error here.  Overriding the existing user
+command with ":command!" is not a good idea, this would probably make the user
+wonder why the command he defined himself doesn't work.  |:command|
+If it did happen you can find out who to blame with: >
+
+	verbose command Correct
+
+
+SCRIPT VARIABLES
+
+When a variable starts with "s:" it is a script variable.  It can only be used
+inside a script.  Outside the script it's not visible.  This avoids trouble
+with using the same variable name in different scripts.  The variables will be
+kept as long as Vim is running.  And the same variables are used when sourcing
+the same script again. |s:var|
+
+The nice thing about |Vim9| script is that variables are local to the script
+by default.  You can prepend "s:" if you like, but you do not need to.  And
+functions in the script can also use the script variables without a prefix.
+
+Script-local variables can also be used in functions, autocommands and user
+commands that are defined in the script.  Thus they are the perfect way to
+share information between parts of your plugin, without it leaking out.  In
+our example we can add a few lines to count the number of corrections: >
+
+ 19	var count = 4
+ ..
+ 30	def Add(from: string, correct: bool)
+ ..
+ 34	  count += 1
+ 35	  echo "you now have " .. count .. " corrections"
+ 36	enddef
+
+"count" is declared and initialized to 4 in the script itself.  When later
+the Add() function is called, it increments "count".  It doesn't matter from
+where the function was called, since it has been defined in the script, it
+will use the local variables from this script.
+
+
+THE RESULT
+
+Here is the resulting complete example: >
+
+  1	vim9script noclear
+  2	# Vim global plugin for correcting typing mistakes
+  3	# Last Change:	2021 Dec 30
+  4	# Maintainer:	Bram Moolenaar <Bram@vim.org>
+  5	# License:	This file is placed in the public domain.
+  6
+  7	if exists("g:loaded_typecorrect")
+  8	  finish
+  9	endif
+ 10	g:loaded_typecorrect = 1
+ 11	var save_cpo = &cpo
+ 12	set cpo&vim
+ 13
+ 14	iabbrev teh the
+ 15	iabbrev otehr other
+ 16	iabbrev wnat want
+ 17	iabbrev synchronisation
+ 18		\ synchronization
+ 19	var count = 4
+ 20
+ 21	if !hasmapto('<Plug>TypecorrAdd;')
+ 22	  map <unique> <Leader>a  <Plug>TypecorrAdd;
+ 23	endif
+ 24	noremap <unique> <script> <Plug>TypecorrAdd;  <SID>Add
+ 25
+ 26	noremenu <script> Plugin.Add\ Correction      <SID>Add
+ 27
+ 28	noremap <SID>Add  :call <SID>Add(expand("<cword>"), true)<CR>
+ 29
+ 30	def Add(from: string, correct: bool)
+ 31	  var to = input("type the correction for " .. from .. ": ")
+ 32	  exe ":iabbrev " .. from .. " " .. to
+ 33	  if correct | exe "normal viws\<C-R>\" \b\e" | endif
+ 34	  count += 1
+ 35	  echo "you now have " .. count .. " corrections"
+ 36	enddef
+ 37
+ 38	if !exists(":Correct")
+ 39	  command -nargs=1  Correct  call Add(<q-args>, false)
+ 40	endif
+ 41
+ 42	&cpo = save_cpo
+
+Line 33 wasn't explained yet.  It applies the new correction to the word under
+the cursor.  The |:normal| command is used to use the new abbreviation.  Note
+that mappings and abbreviations are expanded here, even though the function
+was called from a mapping defined with ":noremap".
+
+
+DOCUMENTATION						*write-local-help*
+
+It's a good idea to also write some documentation for your plugin.  Especially
+when its behavior can be changed by the user.  See |add-local-help| for how
+they are installed.
+
+Here is a simple example for a plugin help file, called "typecorrect.txt": >
+
+  1	*typecorrect.txt*	Plugin for correcting typing mistakes
+  2
+  3	If you make typing mistakes, this plugin will have them corrected
+  4	automatically.
+  5
+  6	There are currently only a few corrections.  Add your own if you like.
+  7
+  8	Mappings:
+  9	<Leader>a   or   <Plug>TypecorrAdd;
+ 10		Add a correction for the word under the cursor.
+ 11
+ 12	Commands:
+ 13	:Correct {word}
+ 14		Add a correction for {word}.
+ 15
+ 16							*typecorrect-settings*
+ 17	This plugin doesn't have any settings.
+
+The first line is actually the only one for which the format matters.  It will
+be extracted from the help file to be put in the "LOCAL ADDITIONS:" section of
+help.txt |local-additions|.  The first "*" must be in the first column of the
+first line.  After adding your help file do ":help" and check that the entries
+line up nicely.
+
+You can add more tags inside ** in your help file.  But be careful not to use
+existing help tags.  You would probably use the name of your plugin in most of
+them, like "typecorrect-settings" in the example.
+
+Using references to other parts of the help in || is recommended.  This makes
+it easy for the user to find associated help.
+
+
+FILETYPE DETECTION					*plugin-filetype*
+
+If your filetype is not already detected by Vim, you should create a filetype
+detection snippet in a separate file.  It is usually in the form of an
+autocommand that sets the filetype when the file name matches a pattern.
+Example: >
+
+	au BufNewFile,BufRead *.foo		setlocal filetype=foofoo
+
+Write this single-line file as "ftdetect/foofoo.vim" in the first directory
+that appears in 'runtimepath'.  For Unix that would be
+"~/.vim/ftdetect/foofoo.vim".  The convention is to use the name of the
+filetype for the script name.
+
+You can make more complicated checks if you like, for example to inspect the
+contents of the file to recognize the language.  Also see |new-filetype|.
+
+
+SUMMARY							*plugin-special*
+
+Summary of special things to use in a plugin:
+
+var name		Variable local to the script.
+
+<SID>			Script-ID, used for mappings and functions local to
+			the script.
+
+hasmapto()		Function to test if the user already defined a mapping
+			for functionality the script offers.
+
+<Leader>		Value of "mapleader", which the user defines as the
+			keys that plugin mappings start with.
+
+map <unique>		Give a warning if a mapping already exists.
+
+noremap <script>	Use only mappings local to the script, not global
+			mappings.
+
+exists(":Cmd")		Check if a user command already exists.
+
+==============================================================================
+*51.2*	Writing a filetype plugin	*write-filetype-plugin* *ftplugin*
+
+A filetype plugin is like a global plugin, except that it sets options and
+defines mappings for the current buffer only.  See |add-filetype-plugin| for
+how this type of plugin is used.
+
+First read the section on global plugins above |51.1|.  All that is said there
+also applies to filetype plugins.  There are a few extras, which are explained
+here.  The essential thing is that a filetype plugin should only have an
+effect on the current buffer.
+
+
+DISABLING
+
+If you are writing a filetype plugin to be used by many people, they need a
+chance to disable loading it.  Put this at the top of the plugin: >
+
+	# Only do this when not done yet for this buffer
+	if exists("b:did_ftplugin")
+	  finish
+	endif
+	b:did_ftplugin = 1
+
+This also needs to be used to avoid that the same plugin is executed twice for
+the same buffer (happens when using an ":edit" command without arguments).
+
+Now users can disable loading the default plugin completely by making a
+filetype plugin with only these lines: >
+
+	vim9script
+	b:did_ftplugin = 1
+
+This does require that the filetype plugin directory comes before $VIMRUNTIME
+in 'runtimepath'!
+
+If you do want to use the default plugin, but overrule one of the settings,
+you can write the different setting in a script: >
+
+	setlocal textwidth=70
+
+Now write this in the "after" directory, so that it gets sourced after the
+distributed "vim.vim" ftplugin |after-directory|.  For Unix this would be
+"~/.vim/after/ftplugin/vim.vim".  Note that the default plugin will have set
+"b:did_ftplugin", but it is ignored here.
+
+
+OPTIONS
+
+To make sure the filetype plugin only affects the current buffer use the >
+
+	setlocal
+
+command to set options.  And only set options which are local to a buffer (see
+the help for the option to check that).  When using `:setlocal` for global
+options or options local to a window, the value will change for many buffers,
+and that is not what a filetype plugin should do.
+
+When an option has a value that is a list of flags or items, consider using
+"+=" and "-=" to keep the existing value.  Be aware that the user may have
+changed an option value already.  First resetting to the default value and
+then changing it is often a good idea.  Example: >
+
+	setlocal formatoptions& formatoptions+=ro
+
+
+MAPPINGS
+
+To make sure mappings will only work in the current buffer use the >
+
+	map <buffer>
+
+command.  This needs to be combined with the two-step mapping explained above.
+An example of how to define functionality in a filetype plugin: >
+
+	if !hasmapto('<Plug>JavaImport;')
+	  map <buffer> <unique> <LocalLeader>i <Plug>JavaImport;
+	endif
+	noremap <buffer> <unique> <Plug>JavaImport; oimport ""<Left><Esc>
+
+|hasmapto()| is used to check if the user has already defined a map to
+<Plug>JavaImport;.  If not, then the filetype plugin defines the default
+mapping.  This starts with |<LocalLeader>|, which allows the user to select
+the key(s) he wants filetype plugin mappings to start with.  The default is a
+backslash.
+"<unique>" is used to give an error message if the mapping already exists or
+overlaps with an existing mapping.
+|:noremap| is used to avoid that any other mappings that the user has defined
+interferes.  You might want to use ":noremap <script>" to allow remapping
+mappings defined in this script that start with <SID>.
+
+The user must have a chance to disable the mappings in a filetype plugin,
+without disabling everything.  Here is an example of how this is done for a
+plugin for the mail filetype: >
+
+	# Add mappings, unless the user didn't want this.
+	if !exists("g:no_plugin_maps") && !exists("g:no_mail_maps")
+	  # Quote text by inserting "> "
+	  if !hasmapto('<Plug>MailQuote;')
+	    vmap <buffer> <LocalLeader>q <Plug>MailQuote;
+	    nmap <buffer> <LocalLeader>q <Plug>MailQuote;
+	  endif
+	  vnoremap <buffer> <Plug>MailQuote; :s/^/> /<CR>
+	  nnoremap <buffer> <Plug>MailQuote; :.,$s/^/> /<CR>
+	endif
+
+Two global variables are used:
+|g:no_plugin_maps|	disables mappings for all filetype plugins
+|g:no_mail_maps|	disables mappings for the "mail" filetype
+
+
+USER COMMANDS
+
+To add a user command for a specific file type, so that it can only be used in
+one buffer, use the "-buffer" argument to |:command|.  Example: >
+
+	command -buffer  Make  make %:r.s
+
+
+VARIABLES
+
+A filetype plugin will be sourced for each buffer of the type it's for.  Local
+script variables will be shared between all invocations.  Use local buffer
+variables |b:var| if you want a variable specifically for one buffer.
+
+
+FUNCTIONS
+
+When defining a function, this only needs to be done once.  But the filetype
+plugin will be sourced every time a file with this filetype will be opened.
+This construct makes sure the function is only defined once: >
+
+	if !exists("*Func")
+	  def Func(arg)
+	    ...
+	  enddef
+	endif
+<
+
+UNDO						*undo_indent* *undo_ftplugin*
+
+When the user does ":setfiletype xyz" the effect of the previous filetype
+should be undone.  Set the b:undo_ftplugin variable to the commands that will
+undo the settings in your filetype plugin.  Example: >
+
+	let b:undo_ftplugin = "setlocal fo< com< tw< commentstring<"
+		\ .. "| unlet b:match_ignorecase b:match_words b:match_skip"
+
+Using ":setlocal" with "<" after the option name resets the option to its
+global value.  That is mostly the best way to reset the option value.
+
+This does require removing the "C" flag from 'cpoptions' to allow line
+continuation, as mentioned above |use-cpo-save|.
+
+For undoing the effect of an indent script, the b:undo_indent variable should
+be set accordingly.
+
+Both these variables use legacy script syntax, not |Vim9| syntax.
+
+
+FILE NAME
+
+The filetype must be included in the file name |ftplugin-name|.  Use one of
+these three forms:
+
+	.../ftplugin/stuff.vim
+	.../ftplugin/stuff_foo.vim
+	.../ftplugin/stuff/bar.vim
+
+"stuff" is the filetype, "foo" and "bar" are arbitrary names.
+
+
+SUMMARY							*ftplugin-special*
+
+Summary of special things to use in a filetype plugin:
+
+<LocalLeader>		Value of "maplocalleader", which the user defines as
+			the keys that filetype plugin mappings start with.
+
+map <buffer>		Define a mapping local to the buffer.
+
+noremap <script>	Only remap mappings defined in this script that start
+			with <SID>.
+
+setlocal		Set an option for the current buffer only.
+
+command -buffer	Define a user command local to the buffer.
+
+exists("*s:Func")	Check if a function was already defined.
+
+Also see |plugin-special|, the special things used for all plugins.
+
+==============================================================================
+*51.3*	Writing a compiler plugin		*write-compiler-plugin*
+
+A compiler plugin sets options for use with a specific compiler.  The user can
+load it with the |:compiler| command.  The main use is to set the
+'errorformat' and 'makeprg' options.
+
+Easiest is to have a look at examples.  This command will edit all the default
+compiler plugins: >
+
+	next $VIMRUNTIME/compiler/*.vim
+
+Type `:next` to go to the next plugin file.
+
+There are two special items about these files.  First is a mechanism to allow
+a user to overrule or add to the default file.  The default files start with: >
+
+	vim9script
+	if exists("g:current_compiler")
+	  finish
+	endif
+	g:current_compiler = "mine"
+
+When you write a compiler file and put it in your personal runtime directory
+(e.g., ~/.vim/compiler for Unix), you set the "current_compiler" variable to
+make the default file skip the settings.
+							*:CompilerSet*
+The second mechanism is to use ":set" for ":compiler!" and ":setlocal" for
+":compiler".  Vim defines the ":CompilerSet" user command for this.  However,
+older Vim versions don't, thus your plugin should define it then.  This is an
+example: >
+
+  if exists(":CompilerSet") != 2
+    command -nargs=* CompilerSet setlocal <args>
+  endif
+  CompilerSet errorformat&		" use the default 'errorformat'
+  CompilerSet makeprg=nmake
+
+When you write a compiler plugin for the Vim distribution or for a system-wide
+runtime directory, use the mechanism mentioned above.  When
+"current_compiler" was already set by a user plugin nothing will be done.
+
+When you write a compiler plugin to overrule settings from a default plugin,
+don't check "current_compiler".  This plugin is supposed to be loaded
+last, thus it should be in a directory at the end of 'runtimepath'.  For Unix
+that could be ~/.vim/after/compiler.
+
+==============================================================================
+*51.4*	Writing a plugin that loads quickly	*write-plugin-quickload*
+
+A plugin may grow and become quite long.  The startup delay may become
+noticeable, while you hardly ever use the plugin.  Then it's time for a
+quickload plugin.
+
+The basic idea is that the plugin is loaded twice.  The first time user
+commands and mappings are defined that offer the functionality.  The second
+time the functions that implement the functionality are defined.
+
+It may sound surprising that quickload means loading a script twice.  What we
+mean is that it loads quickly the first time, postponing the bulk of the
+script to the second time, which only happens when you actually use it.  When
+you always use the functionality it actually gets slower!
+
+This uses a FuncUndefined autocommand.  Since Vim 7 there is an alternative:
+use the |autoload| functionality |51.5|.  That will also use |Vim9| script
+instead of legacy script that is used here.
+
+The following example shows how it's done: >
+
+	" Vim global plugin for demonstrating quick loading
+	" Last Change:	2005 Feb 25
+	" Maintainer:	Bram Moolenaar <Bram@vim.org>
+	" License:	This file is placed in the public domain.
+
+	if !exists("s:did_load")
+		command -nargs=* BNRead  call BufNetRead(<f-args>)
+		map <F19> :call BufNetWrite('something')<CR>
+
+		let s:did_load = 1
+		exe 'au FuncUndefined BufNet* source ' .. expand('<sfile>')
+		finish
+	endif
+
+	function BufNetRead(...)
+		echo 'BufNetRead(' .. string(a:000) .. ')'
+		" read functionality here
+	endfunction
+
+	function BufNetWrite(...)
+		echo 'BufNetWrite(' .. string(a:000) .. ')'
+		" write functionality here
+	endfunction
+
+When the script is first loaded "s:did_load" is not set.  The commands between
+the "if" and "endif" will be executed.  This ends in a |:finish| command, thus
+the rest of the script is not executed.
+
+The second time the script is loaded "s:did_load" exists and the commands
+after the "endif" are executed.  This defines the (possible long)
+BufNetRead() and BufNetWrite() functions.
+
+If you drop this script in your plugin directory Vim will execute it on
+startup.  This is the sequence of events that happens:
+
+1. The "BNRead" command is defined and the <F19> key is mapped when the script
+   is sourced at startup.  A |FuncUndefined| autocommand is defined.  The
+   ":finish" command causes the script to terminate early.
+
+2. The user types the BNRead command or presses the <F19> key.  The
+   BufNetRead() or BufNetWrite() function will be called.
+
+3. Vim can't find the function and triggers the |FuncUndefined| autocommand
+   event.  Since the pattern "BufNet*" matches the invoked function, the
+   command "source fname" will be executed.  "fname" will be equal to the name
+   of the script, no matter where it is located, because it comes from
+   expanding "<sfile>" (see |expand()|).
+
+4. The script is sourced again, the "s:did_load" variable exists and the
+   functions are defined.
+
+Notice that the functions that are loaded afterwards match the pattern in the
+|FuncUndefined| autocommand.  You must make sure that no other plugin defines
+functions that match this pattern.
+
+==============================================================================
+*51.5*	Writing library scripts			*write-library-script*
+
+Some functionality will be required in several places.  When this becomes more
+than a few lines you will want to put it in one script and use it from many
+scripts.  We will call that one script a library script.
+
+Manually loading a library script is possible, so long as you avoid loading it
+when it's already done.  You can do this with the |exists()| function.
+Example: >
+
+	if !exists('*MyLibFunction')
+	   runtime library/mylibscript.vim
+	endif
+	MyLibFunction(arg)
+
+Here you need to know that MyLibFunction() is defined in a script
+"library/mylibscript.vim" in one of the directories in 'runtimepath'.
+
+To make this a bit simpler Vim offers the autoload mechanism.  Then the
+example looks like this: >
+
+	mylib#myfunction(arg)
+
+That's a lot simpler, isn't it?  Vim will recognize the function name by the
+embedded "#" character and when it's not defined search for the script
+"autoload/mylib.vim" in 'runtimepath'.  That script must define the
+"mylib#myfunction()" function.
+
+You can put many other functions in the mylib.vim script, you are free to
+organize your functions in library scripts.  But you must use function names
+where the part before the '#' matches the script name.  Otherwise Vim would
+not know what script to load.
+
+If you get really enthusiastic and write lots of library scripts, you may
+want to use subdirectories.  Example: >
+
+	netlib#ftp#read('somefile')
+
+For Unix the library script used for this could be:
+
+	~/.vim/autoload/netlib/ftp.vim
+
+Where the function is defined like this: >
+
+	def netlib#ftp#read(fname: string)
+		#  Read the file fname through ftp
+	enddef
+
+Notice that the name the function is defined with is exactly the same as the
+name used for calling the function.  And the part before the last '#'
+exactly matches the subdirectory and script name.
+
+You can use the same mechanism for variables: >
+
+	var weekdays = dutch#weekdays
+
+This will load the script "autoload/dutch.vim", which should contain something
+like: >
+
+	var dutch#weekdays = ['zondag', 'maandag', 'dinsdag', 'woensdag',
+		\ 'donderdag', 'vrijdag', 'zaterdag']
+
+Further reading: |autoload|.
+
+==============================================================================
+*51.6*	Distributing Vim scripts			*distribute-script*
+
+Vim users will look for scripts on the Vim website: http://www.vim.org.
+If you made something that is useful for others, share it!
+
+Another place is github.  But there you need to know where to find it!  The
+advantage is that most plugin managers fetch plugins from github.  You'll have
+to use your favorite search engine to find them.
+
+Vim scripts can be used on any system.  However, there might not be a tar or
+gzip command.  If you want to pack files together and/or compress them the
+"zip" utility is recommended.
+
+For utmost portability use Vim itself to pack scripts together.  This can be
+done with the Vimball utility.  See |vimball|.
+
+It's good if you add a line to allow automatic updating.  See |glvs-plugins|.
+
+==============================================================================
+
+Next chapter: |usr_52.txt|  Write plugins using Vim9 script
+
+Copyright: see |manual-copyright|  vim:tw=78:ts=8:noet:ft=help:norl:
rename from runtime/doc/usr_46.txt
rename to runtime/doc/usr_52.txt
--- a/runtime/doc/usr_46.txt
+++ b/runtime/doc/usr_52.txt
@@ -1,4 +1,4 @@
-*usr_46.txt*	For Vim version 8.2.  Last change: 2020 Jun 14
+*usr_52.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -9,17 +9,17 @@ The Vim9 script language is used for wri
 that use multiple files.  This chapter explains how to split up a plugin into
 modules, import and export items and keep the rest local.
 
-|46.1|	Introduction
-|46.2|	Variable declarations
-|46.3|	Functions and types
-|46.?|	Using a Vim9 script from legacy script
+|52.1|	Introduction
+|52.2|	Variable declarations
+|52.3|	Functions and types
+|52.4|	Using a Vim9 script from legacy script
 
      Next chapter: |usr_90.txt|  Installing Vim
- Previous chapter: |usr_45.txt|  Select your language (locale)
+ Previous chapter: |usr_51.txt|  Create a plugin
 Table of contents: |usr_toc.txt|
 
 ==============================================================================
-*46.1*	Introduction				*vim9-script-intro*
+*52.1*	Introduction				*vim9-script-intro*
 
 Vim9 script was designed to make it easier to write large Vim scripts.  It
 looks more like other script languages, especially Typescript.  Also,
@@ -69,7 +69,7 @@ Notice that the assignment `result = Get
 command.  That is explained in the next section.
 
 ==============================================================================
-*46.2*	Variable declarations				*vim9-declarations*
+*52.2*	Variable declarations				*vim9-declarations*
 
 In Vim9 script variables are declared once with a `:let` or `:const` command.
 Assigning a value is done without `:let` and it is not possible to `:unlet`
@@ -108,7 +108,7 @@ Although it's shorter to do: >
 	let word = condition ? 'yes' : 'no'
 
 ==============================================================================
-*46.3*	Functions and types
+*52.3*	Functions and types
 
 Legacy Vim script does have type checking, but this happens at runtime, when
 the code is executed.  And it's permissive, often a computation gives an
@@ -161,7 +161,7 @@ multiple types, you can use the "any" ty
 	enddef
 
 ==============================================================================
-*46.?*	Using a Vim9 script from legacy script		*source-vim9-script*
+*52.4*	Using a Vim9 script from legacy script		*source-vim9-script*
 
 In some cases you have a legacy Vim script where you want to use items from a
 Vim9 script.  For example in your .vimrc you want to initialize a plugin.  The
--- a/runtime/doc/usr_90.txt
+++ b/runtime/doc/usr_90.txt
@@ -1,4 +1,4 @@
-*usr_90.txt*	For Vim version 8.2.  Last change: 2020 Jun 11
+*usr_90.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -15,7 +15,7 @@ upgrading to a new version is done.
 |90.4|	Common installation issues
 |90.5|	Uninstalling Vim
 
- Previous chapter: |usr_46.txt|  Write plugins using Vim9 script
+ Previous chapter: |usr_52.txt|  Write plugins using Vim9 script
 Table of contents: |usr_toc.txt|
 
 ==============================================================================
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 8.2.  Last change: 2020 Jun 15
+*usr_toc.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -7,7 +7,7 @@
 ==============================================================================
 Overview ~
 
-Getting Started
+Getting Started ~
 |usr_01.txt|  About the manuals
 |usr_02.txt|  The first steps in Vim
 |usr_03.txt|  Moving around
@@ -21,7 +21,7 @@ Getting Started
 |usr_11.txt|  Recovering from a crash
 |usr_12.txt|  Clever tricks
 
-Editing Effectively
+Editing Effectively ~
 |usr_20.txt|  Typing command-line commands quickly
 |usr_21.txt|  Go away and come back
 |usr_22.txt|  Finding the file to edit
@@ -36,24 +36,28 @@ Editing Effectively
 |usr_31.txt|  Exploiting the GUI
 |usr_32.txt|  The undo tree
 
-Tuning Vim
+Tuning Vim ~
 |usr_40.txt|  Make new commands
 |usr_41.txt|  Write a Vim script
 |usr_42.txt|  Add new menus
 |usr_43.txt|  Using filetypes
 |usr_44.txt|  Your own syntax highlighted
 |usr_45.txt|  Select your language (locale)
-|usr_46.txt|  Write plugins using Vim9 script
 
-Making Vim Run
+Writing Vim script ~
+|usr_50.txt|  Advanced Vim script writing
+|usr_51.txt|  Create a plugin
+|usr_52.txt|  Write plugins using Vim9 script
+
+Making Vim Run ~
 |usr_90.txt|  Installing Vim
 
 
-Reference manual
+Reference manual ~
 |reference_toc|     More detailed information for all commands
 
-The user manual is available as a single, ready to print HTML and PDF file
-here:
+The user manual (an older version) is available as a single, ready to print
+HTML and PDF file here:
 	http://vimdoc.sf.net
 
 ==============================================================================
@@ -302,12 +306,6 @@ Make Vim work as you like it.
 		|41.8|	Lists and Dictionaries
 		|41.9|	Exceptions
 		|41.10|	Various remarks
-		|41.11|	Writing a plugin
-		|41.12|	Writing a filetype plugin
-		|41.13|	Writing a compiler plugin
-		|41.14|	Writing a plugin that loads quickly
-		|41.15|	Writing library scripts
-		|41.16|	Distributing Vim scripts
 
 |usr_42.txt|  Add new menus
 		|42.1|	Introduction
@@ -340,11 +338,24 @@ Make Vim work as you like it.
 		|45.4|	Editing files with a different encoding
 		|45.5|	Entering language text
 
-|usr_46.txt|  Write plugins using Vim9 script
-		|46.1|	Introduction
-		|46.2|	Variable declarations
-		|46.3|	Functions and types
-		|46.?|	Using a Vim9 script from legacy script
+==============================================================================
+Writing Vim script ~
+
+|usr_50.txt|  TODO
+
+|usr_51.txt|  Write plugins
+		|51.1|	Writing a generic plugin
+		|51.2|	Writing a filetype plugin
+		|51.3|	Writing a compiler plugin
+		|51.4|	Writing a plugin that loads quickly
+		|51.5|	Writing library scripts
+		|51.6|	Distributing Vim scripts
+
+|usr_52.txt|  Write plugins using Vim9 script
+		|52.1|	Introduction
+		|52.2|	Variable declarations
+		|52.3|	Functions and types
+		|52.4|	Using a Vim9 script from legacy script
 
 ==============================================================================
 Making Vim Run ~
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2022 Apr 28
+*vim9.txt*	For Vim version 8.2.  Last change: 2022 May 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -294,7 +294,8 @@ You can use an autoload function if need
 Reloading a Vim9 script clears functions and variables by default ~
 						*vim9-reload* *E1149* *E1150*
 When loading a legacy Vim script a second time nothing is removed, the
-commands will replace existing variables and functions and create new ones.
+commands will replace existing variables and functions, create new ones, and
+leave removed things hanging around.
 
 When loading a Vim9 script a second time all existing script-local functions
 and variables are deleted, thus you start with a clean slate.  This is useful
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Vim help file
 " Maintainer:	Bram Moolenaar (Bram@vim.org)
-" Last Change:	2022 May 12
+" Last Change:	2022 May 13
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -215,7 +215,7 @@ hi def link helpError		Error
 hi def link helpTodo		Todo
 hi def link helpURL		String
 
-if expand('%:p') =~ escape($VIMRUNTIME, '\') .. '[/\\]doc[/\\]syntax.txt'
+if expand('%:p') =~ '[/\\]doc[/\\]syntax.txt'
   " highlight groups with their respective color
   import 'dist/vimhelp.vim'
   call vimhelp.HighlightGroups()