+1
.gitignore
+1
.gitignore
···
1
+
result
-48
README.md
-48
README.md
···
1
-
# vim-colors-plain
2
-
3
-
This is a fork of [vim-colors-off][] which is being developed based on my
4
-
personal taste.
5
-
6
-

7
-

8
-
9
-
## Motivation
10
-
11
-
Minimalistic colorscheme which uses bold to highlight keywords and a
12
-
distinguished color for constant literals (string, numbers, JSX tags).
13
-
14
-
## Installation & Usage
15
-
16
-
With [vim-plug][] you add this to the `.vimrc`:
17
-
18
-
```
19
-
Plug 'andreypopp/vim-colors-plain'
20
-
```
21
-
22
-
Then:
23
-
24
-
```
25
-
set background=light " Set to dark for a dark variant
26
-
colorscheme plain
27
-
```
28
-
29
-
## FAQ
30
-
31
-
- What terminal emulator is shown on the screenshots?
32
-
33
-
This is [kitty][]. Fast and highly configurable.
34
-
35
-
- Is this Vim or Neovim on the screenshots and why?
36
-
37
-
This is Neovim.
38
-
39
-
- What font is being used on the screenshots?
40
-
41
-
[Pragmata Pro][] which is not free but worth the money paid. [Iosevka][] is
42
-
another great font I used before which is similar in feel.
43
-
44
-
[vim-colors-off]: https://github.com/pbrisbin/vim-colors-off
45
-
[vim-plug]: https://github.com/junegunn/vim-plug
46
-
[kitty]: https://github.com/kovidgoyal/kitty
47
-
[Pragmata Pro]: https://www.fsd.it/shop/fonts/pragmatapro/
48
-
[Iosevka]: https://github.com/be5invis/Iosevka
+170
-35
colors/plain.vim
+170
-35
colors/plain.vim
···
40
40
let s:light_blue = { "gui": "#B6D6FD", "cterm": "4" }
41
41
let s:dark_cyan = { "gui": "#20A5BA", "cterm": "6" }
42
42
let s:light_cyan = { "gui": "#4FB8CC", "cterm": "6" }
43
-
let s:dark_green = { "gui": "#10A778", "cterm": "2" }
44
-
let s:light_green = { "gui": "#5FD7A7", "cterm": "2" }
43
+
let s:dark_green = { "gui": "#10A778", "cterm": "6" }
44
+
let s:light_green = { "gui": "#5FD7A7", "cterm": "6" }
45
45
let s:dark_purple = { "gui": "#523C79", "cterm": "5" }
46
46
let s:light_purple = { "gui": "#6855DE", "cterm": "5" }
47
47
let s:light_yellow = { "gui": "#F3E430", "cterm": "3" }
···
60
60
let s:yellow = s:light_yellow
61
61
let s:visual = s:subtle_black
62
62
let s:cursor_line = s:subtle_black
63
-
let s:status_line = s:medium_gray
64
-
let s:status_line_nc = s:light_black
63
+
let s:status_line = s:lighter_black
64
+
let s:status_line_nc = s:subtle_black
65
65
let s:constant = s:light_green
66
66
let s:comment = s:lighter_black
67
67
let s:selection = s:light_purple
···
79
79
let s:yellow = s:dark_yellow
80
80
let s:visual = s:light_blue
81
81
let s:cursor_line = s:medium_gray
82
-
let s:status_line = s:medium_gray
83
-
let s:status_line_nc = s:light_gray
82
+
let s:status_line = s:lighter_gray
83
+
let s:status_line_nc = s:lighter_black
84
84
let s:constant = s:dark_blue
85
85
let s:comment = s:light_gray
86
86
let s:selection = s:light_yellow
···
99
99
\ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
100
100
endfunction
101
101
102
-
call s:h("Normal", {"bg": s:bg, "fg": s:norm})
103
-
call s:h("Noise", {"bg": s:bg, "fg": s:norm_subtle})
102
+
call s:h("firstAccent", {"fg": s:cyan})
103
+
call s:h("secondAccent", {"fg": s:purple})
104
+
105
+
call s:h("Normal", {"fg": s:norm,})
106
+
call s:h("Noise", {"fg": s:norm_subtle})
104
107
call s:h("Cursor", {"bg": s:green, "fg": s:norm})
105
108
call s:h("Comment", {"fg": s:comment, "cterm": "italic"})
106
109
call s:h("Function", {"fg": s:norm, "cterm": "bold"})
107
110
108
-
call s:h("Constant", {"bg": s:bg, "fg": s:constant})
111
+
hi! link Constant firstAccent
109
112
hi! link Character Constant
110
113
hi! link Number Constant
111
114
hi! link Boolean Constant
···
116
119
hi! link Identifier Normal
117
120
118
121
"hi! link Statement Normal
119
-
call s:h("Statement", {"bg": s:bg, "fg": s:norm, "cterm": "bold"})
122
+
call s:h("Statement", {"fg": s:norm, "cterm": "bold"})
120
123
hi! link Conditonal Statement
121
124
hi! link Repeat Statement
122
125
hi! link Label Statement
···
132
135
hi! link PreCondit PreProc
133
136
134
137
"call s:h("Type", {"fg": s:purple})
135
-
hi! link Type Normal
138
+
hi! link Type secondAccent
136
139
hi! link StorageClass Type
137
-
hi! link Structure Type
138
-
hi! link Typedef Type
140
+
hi! link Structure Noise
141
+
hi! link Typedef Noise
139
142
140
143
"call s:h("Special", {"fg": s:pink})
141
144
hi! link Special StatusLine
···
149
152
150
153
call s:h("Underlined", {"fg": s:norm, "gui": "underline", "cterm": "underline"})
151
154
call s:h("Ignore", {"fg": s:bg})
152
-
call s:h("Error", {"fg": s:red, "bg": s:bg, "cterm": "bold"})
153
-
call s:h("Todo", {"fg": s:actual_white, "bg": s:pink, "gui": "bold", "cterm": "bold"})
155
+
call s:h("Error", {"fg": s:red, "cterm": "bold"})
156
+
call s:h("Todo", {"fg": s:actual_white, "bg": s:black, "gui": "bold", "cterm": "bold"})
154
157
call s:h("SpecialKey", {"fg": s:subtle_black})
155
158
call s:h("NonText", {"fg": s:bg_very_subtle})
156
159
call s:h("Directory", {"fg": s:dark_green})
157
160
call s:h("ErrorMsg", {"fg": s:pink})
158
161
call s:h("IncSearch", {"bg": s:selection, "fg": s:black})
159
162
call s:h("Search", {"bg": s:selection, "fg": s:black})
163
+
call s:h("CurSearch", {"bg": s:selection, "fg": s:black})
160
164
call s:h("MoreMsg", {"fg": s:medium_gray, "cterm": "bold", "gui": "bold"})
161
165
hi! link ModeMsg MoreMsg
162
-
call s:h("LineNr", {"fg": s:light_black})
166
+
call s:h("LineNr", {"fg": s:medium_gray})
163
167
call s:h("CursorLineNr", {"fg": s:green, "bg": s:bg_very_subtle})
164
168
call s:h("Question", {"fg": s:red})
165
169
call s:h("VertSplit", {"bg": s:bg, "fg": s:bg_very_subtle})
···
174
178
call s:h("DiffDelete", {"fg": s:red})
175
179
call s:h("DiffChange", {"fg": s:dark_yellow})
176
180
call s:h("DiffText", {"fg": s:dark_green})
177
-
call s:h("SignColumn", {"fg": s:light_green})
181
+
call s:h("SignColumn", {"fg": s:medium_gray})
178
182
179
183
if has("gui_running")
180
184
call s:h("SpellBad", {"gui": "underline", "sp": s:red})
···
188
192
call s:h("SpellLocal", {"cterm": "underline", "fg": s:dark_green})
189
193
endif
190
194
191
-
""" Help
192
-
hi link helpHyperTextEntry Title
193
-
hi link helpHyperTextJump String
194
-
195
195
""" StatusLine
196
-
197
-
call s:h("StatusLine", {"bg": s:bg, "fg": s:status_line})
198
-
call s:h("StatusLineNC", {"cterm": "underline", "bg": s:bg, "fg": s:status_line_nc})
196
+
call s:h("StatusLine", {"fg": s:status_line})
197
+
call s:h("StatusLineNC", {"fg": s:status_line_nc})
199
198
200
199
" Those are not standard but are useful to emphasis different parts of the
201
200
" status line.
···
215
214
call s:h("ColorColumn", {"bg": s:bg_subtle})
216
215
217
216
call s:h("MatchParen", {"bg": s:bg_very_subtle, "fg": s:norm})
218
-
call s:h("qfLineNr", {"fg": s:medium_gray})
217
+
hi link qfLineNr secondAccent
218
+
hi link qfFileName firstAccent
219
+
220
+
call s:h("htmlH1", {"fg": s:norm})
221
+
call s:h("htmlH2", {"fg": s:norm})
222
+
call s:h("htmlH3", {"fg": s:norm})
223
+
call s:h("htmlH4", {"fg": s:norm})
224
+
call s:h("htmlH5", {"fg": s:norm})
225
+
call s:h("htmlH6", {"fg": s:norm})
219
226
220
-
call s:h("htmlH1", {"bg": s:bg, "fg": s:norm})
221
-
call s:h("htmlH2", {"bg": s:bg, "fg": s:norm})
222
-
call s:h("htmlH3", {"bg": s:bg, "fg": s:norm})
223
-
call s:h("htmlH4", {"bg": s:bg, "fg": s:norm})
224
-
call s:h("htmlH5", {"bg": s:bg, "fg": s:norm})
225
-
call s:h("htmlH6", {"bg": s:bg, "fg": s:norm})
227
+
call s:h("htmlBold", {"fg": s:norm})
228
+
call s:h("htmlItalic", {"fg": s:norm})
229
+
call s:h("htmlEndTag", {"fg": s:norm})
230
+
call s:h("htmlTag", {"fg": s:norm})
231
+
call s:h("htmlTagName", {"fg": s:norm})
232
+
call s:h("htmlArg", {"fg": s:norm})
233
+
call s:h("htmlError", {"fg": s:red})
234
+
235
+
" JavaScript highlighting
236
+
"
237
+
call s:h("javaScript", {"bg": s:bg, "fg": s:norm})
238
+
call s:h("javaScriptBraces", {"bg": s:bg, "fg": s:norm})
239
+
call s:h("javaScriptNumber", {"bg": s:bg, "fg": s:green})
226
240
227
241
hi link diffRemoved DiffDelete
228
242
hi link diffAdded DiffAdd
229
243
244
+
hi link TSAnnotation secondAccent
245
+
" unstable for now:
246
+
hi link TSAttribute secondAccent
247
+
hi link TSBoolean Constant
248
+
hi link TSCharacter Constant
249
+
hi link TSComment Comment
250
+
hi link TSConstructor Normal
251
+
hi link TSConditional Normal
252
+
hi link TSConstant Constant
253
+
hi link TSConstBuiltin secondAccent
254
+
hi link TSConstMacro secondAccent
255
+
hi link TSError Error
256
+
hi link TSException Error
257
+
hi link TSField Normal
258
+
hi link TSFloat Constant
259
+
hi link TSFunction Normal
260
+
hi link TSFuncBuiltin Noise
261
+
hi link TSFuncMacro secondAccent
262
+
hi link TSInclude Noise
263
+
hi link TSKeyword Noise
264
+
hi link TSKeywordFunction Noise
265
+
hi link TSLabel Noise
266
+
hi link TSMethod Normal
267
+
hi link TSNamespace Noise
268
+
hi link TSNone Noise
269
+
hi link TSNumber Constant
270
+
hi link TSOperator Normal
271
+
hi link TSParameter Statement
272
+
hi link TSParameterReference Statement
273
+
hi link TSProperty TSField
274
+
hi link TSPunctDelimiter Noise
275
+
hi link TSPunctBracket Noise
276
+
hi link TSPunctSpecial Noise
277
+
hi link TSRepeat Normal
278
+
hi link TSString Constant
279
+
hi link TSStringRegex secondAccent
280
+
hi link TSStringEscape secondAccent
281
+
hi link TSStringSpecial secondAccent
282
+
hi link TSTag Statement
283
+
hi link TSTagDelimiter Noise
284
+
hi link TSText Normal
285
+
hi link TSEmphasis Statement
286
+
hi link TSUnderline Underlined
287
+
hi link TSStrike Underlined
288
+
hi link TSTitle Statement
289
+
hi link TSLiteral Noise
290
+
hi link TSURI Constant
291
+
hi link TSType secondAccent
292
+
hi link TSTypeBuiltin secondAccent
293
+
hi link TSVariable Normal
294
+
hi link TSVariableBuiltin Normal
295
+
296
+
" nvim-lsp diagnostics
297
+
hi link LspDiagnosticsDefaultError Error
298
+
hi link LspDiagnosticsDefaultWarning WarningMsg
299
+
hi link LspDiagnosticsDefaultInformation Noise
300
+
hi link LspDiagnosticsDefaultHint Constant
301
+
230
302
" Signify, git-gutter
231
303
hi link SignifySignAdd LineNr
232
304
hi link SignifySignDelete LineNr
···
238
310
239
311
hi link jsFlowTypeKeyword Statement
240
312
hi link jsFlowImportType Statement
241
-
hi link jsFunction Statement
242
-
hi link jsGlobalObjects Normal
313
+
hi link jsFunction Function
314
+
hi link jsGlobalObjects Noise
243
315
hi link jsGlobalNodeObjects Normal
244
-
hi link jsArrowFunction Noise
316
+
hi link jsSwitchCase Constant
317
+
318
+
call s:h("jsSpreadOperator ", {"bg": s:bg, "fg": s:selection})
319
+
hi link jsReturn jsSpreadOperator
320
+
hi link jsExport jsSpreadOperator
321
+
322
+
call s:h("rustModPath ", {"fg": s:lightest_gray})
323
+
hi link rustMacro secondAccent
324
+
hi link rustKeyword Noise
325
+
hi link rustDerive secondAccent
326
+
hi link rustDeriveTrait secondAccent
327
+
hi link rustAttribute secondAccent
328
+
hi link rustLifetime secondAccent
329
+
330
+
hi link schemeSyntax Normal
331
+
hi link schemeParentheses Noise
332
+
hi link schemeIdentifier Noise
333
+
334
+
hi link lispParen Noise
335
+
hi link lispSymbol Noise
336
+
337
+
hi link shCommandSub secondAccent
338
+
339
+
hi link cFormat secondAccent
340
+
341
+
hi link nixBuiltin secondAccent
342
+
hi link nixNamespacedBuiltin secondAccent
343
+
344
+
hi link awkPatterns secondAccent
345
+
hi link awkVariables Normal
346
+
hi link awkOperator Normal
347
+
hi link awkExpression Noise
348
+
hi link awkArrayElement Noise
349
+
hi link awkFieldVars firstAccent
350
+
hi link awkSpecialPrintf secondAccent
351
+
hi link awkSpecialCharacter Noise
352
+
353
+
hi link sqlSpecial firstAccent
354
+
hi link sqlKeyword secondAccent
355
+
356
+
hi link helpExample Normal
357
+
hi link helpCommand secondAccent
358
+
hi link helpBacktick secondAccent
359
+
hi link helpSpecial Normal
360
+
hi link helpUrl secondAccent
361
+
hi link helpHyperTextEntry Title
362
+
hi link helpHyperTextJump String
363
+
364
+
245
365
hi link StorageClass Statement
246
366
247
-
call s:h("xmlTag", {"bg": s:bg, "fg": s:constant})
367
+
hi link elmType Type
368
+
369
+
hi link xmlTag Constant
248
370
hi link xmlTagName xmlTag
249
371
hi link xmlEndTag xmlTag
250
372
hi link xmlAttrib xmlTag
···
261
383
hi link markdownCodeDelimiter Constant
262
384
hi link markdownHeadingDelimiter Constant
263
385
386
+
call s:h("cssBraces", {"bg": s:bg, "fg": s:selection})
387
+
hi link cssTextProp Noise
388
+
hi link cssTagName Normal
389
+
390
+
391
+
" leap-nvim support
392
+
hi link LeapMatch Normal
393
+
hi link LeapLabelPrimary Normal
394
+
hi link LeapLabelSecondary Normal
395
+
hi link LeapBackdrop Noise
396
+
397
+
" lsp ui
398
+
hi link FloatBorder Noise
+27
flake.lock
+27
flake.lock
···
1
+
{
2
+
"nodes": {
3
+
"nixpkgs": {
4
+
"locked": {
5
+
"lastModified": 1632176121,
6
+
"narHash": "sha256-N2oSOhbW38rbc53R1R8qXC/Xstht1PIsAcTzJfmCpTc=",
7
+
"owner": "NixOS",
8
+
"repo": "nixpkgs",
9
+
"rev": "3397f0ede9ea2ded1f8b6fa689dda71a7a67b806",
10
+
"type": "github"
11
+
},
12
+
"original": {
13
+
"owner": "NixOS",
14
+
"ref": "nixos-21.05",
15
+
"repo": "nixpkgs",
16
+
"type": "github"
17
+
}
18
+
},
19
+
"root": {
20
+
"inputs": {
21
+
"nixpkgs": "nixpkgs"
22
+
}
23
+
}
24
+
},
25
+
"root": "root",
26
+
"version": 7
27
+
}
+48
flake.nix
+48
flake.nix
···
1
+
{
2
+
3
+
description = "Duotonic colorscheme for {neo,}vim";
4
+
5
+
inputs = {
6
+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.05";
7
+
};
8
+
9
+
outputs =
10
+
{ self
11
+
, nixpkgs
12
+
, ...
13
+
} @ rest:
14
+
let
15
+
supportedSystems = [ "x86_64-linux" "x86_64-darwin" ];
16
+
17
+
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
18
+
19
+
nixpkgsFor = forAllSystems (system:
20
+
import nixpkgs {
21
+
inherit system;
22
+
overlays = [ self.overlay ];
23
+
}
24
+
);
25
+
in
26
+
{
27
+
28
+
overlay = final: prev: rec {
29
+
vim-colors-plain =
30
+
with final; pkgs.vimUtils.buildVimPlugin {
31
+
pname = "vim-colors-plain";
32
+
version = "0.1.0";
33
+
src = ./.;
34
+
};
35
+
};
36
+
37
+
packages = forAllSystems (system:
38
+
{
39
+
inherit (nixpkgsFor."${system}") vim-colors-plain;
40
+
}
41
+
);
42
+
43
+
defaultPackage =
44
+
forAllSystems (system: self.packages."${system}".vim-colors-plain);
45
+
46
+
};
47
+
48
+
}
+28
readme.md
+28
readme.md
···
1
+

2
+
3
+
vim-colors-plain is a duotonic color scheme, the two accents
4
+
being cyan and pink by default (configurable).
5
+
6
+
i would suggesting installing manually by cloning into your
7
+
plugin directory or dropping `colors/plain.vim` into one of
8
+
the following directories:
9
+
10
+
- vim: `.vim/plugin`
11
+
- neovim: `.config/nvim/plugin`
12
+
13
+
if you use nix/nixos, this repository provides a vim plugin
14
+
as a flake output, that you can import via
15
+
`builtins.getFlake`.
16
+
17
+
```
18
+
vim-colors-plain = {
19
+
url = "github:oppiliappan/vim-colors-plain";
20
+
inputs.nixpkgs.follows = "nixpkgs";
21
+
};
22
+
23
+
.
24
+
.
25
+
.
26
+
27
+
programs.neovim.plugins = [ pkgs.vim-colors-plain ];
28
+
```
screenshots/plain-dark.png
screenshots/plain-dark.png
This is a binary file and will not be displayed.
screenshots/plain-light.png
screenshots/plain-light.png
This is a binary file and will not be displayed.