|
|
||||||
Normal bg |
Identifier |
Normal bg |
|||||
ColorColumn |
Special |
ColorColumn |
|||||
MatchParen |
Statement |
MatchParen |
|||||
Comment |
PreProc |
Comment |
|||||
Normal fg |
Constant |
Normal fg |
|||||
Cursor |
Type |
Cursor |
|||||
Search |
Spell |
Search |
|||||
because red is the color of life, reddish text is for... names, which give life to abstractions (like variables and functions) types ("meta-names" ), such as variable type (int, char...) or storage class (static, register...) because gold is a special color, gold text is for... specials (elements that unlock special features), such as delimiters and debug statements because green is the color of proceeding with action, greenish text is for... statements (the magic "action words" of code), such as conditions (if, then...) or loops (for, do...) meta-statements ("meta-actions", or "meta-magic" ), such as macros and "include module" statements because blue is the calm color of sea and sky, evoking enduring constancy, blue text is for... constants (values that are fixed in place), such as booleans, integers, and strings primary colors of the standard additive model ( red, green, blue) are thus assigned to "regular" elements, This logic is replicated in the cosmic_latte theme. |
If you don’t have a preferred plugin management method, consider vim-plug, which can be installed (on *nix systems) with:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Having installed vim-plug, snow can be installed by adding the following to the top of your vimrc...
call plug#begin('~/.vim/plugged')
Plug 'haystackandroid/snow'
call plug#end()
...then restarting vim, followed by running :PlugUpdate
(at the vim command line).
For a snow day, add the following to vimrc:
set background=light
colorscheme snow
For a snowy evening:
set background=dark
colorscheme snow
To set the background automatically based on the time at which vim is launched:
if strftime('%H') >= 7 && strftime('%H') < 19
set background=light
else
set background=dark
endif
colorscheme snow
...which activates the light version of snow during the day (defined here as 7AM-7PM), dark version at night.
Be sure to set
colorscheme
afterbackground
, otherwise some theme colors may not be applied.
snow comes with themes for airline and lightline, which can be activated with the following vimrc code:
airline | lightline | |
light | let g:airline_theme='snow_light' |
let g:lightline = { 'colorscheme': 'snow_light' } |
dark | let g:airline_theme='snow_dark' |
let g:lightline = { 'colorscheme': 'snow_dark' } |
Status line themes can be added to the time-based snippet above:
if strftime('%H') >= 7 && strftime('%H') < 19
set background=light
let g:lightline = { 'colorscheme': 'snow_light' }
else
set background=dark
let g:lightline = { 'colorscheme': 'snow_dark' }
endif
colorscheme snow
Terminals/multiplexers with true-color support can display the exact colors of the snow theme.
In most cases, the only vimrc setting you need is:
set termguicolors
In some cases you'll also need (see :h xterm-true-color
for explanation):
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
If termguicolors
is not set, terminal vim will fall back to a rough approximation of snow, drawing from the terminal emulator's 256-color palette (if present).
The fallback version of snow defines colors using numbers in the range 0-255 (as opposed to 6-character hex codes, whose range of 224 values is known as "true color"). Terminal emulators with 256-color support understand this encoding, though they vary in the exact color associated with each number. The closest thing to a standard 256-color *nix palette is that used by xterm, the default X Windows terminal emulator.
To set mode-specific cursor shapes in terminal vim, see the Vim Tips Wiki.
For instance, to set cursor shapes in vte-compatible terminals, you could add to vimrc:
let &t_SI = "\<Esc>[6 q"
let &t_SR = "\<Esc>[4 q"
let &t_EI = "\<Esc>[2 q"
...which sets the cursor to a vertical line for insert mode, underline for replace mode, and block for normal mode.
Many terminal emulators can be themed by sourcing the color-setting shell scripts included with snow. The path to these scripts will depend on your plugin management method.
For instance, if you use vim-plug and want to apply the dark snow theme to your bash or zsh shell, add the following to ~/.bashrc
or ~/.zshrc
:
[ -n "$PS1" ] && sh ~/.vim/plugged/snow/shell/snow_dark.sh
Or for the fish shell, add to ~/.config/fish/config.fish
:
if status --is-interactive
sh ~/.vim/plugged/snow/shell/snow_dark.sh
end
If you use vundle, replace plugged
in the above paths with bundle
.
Replace dark
with light
for the light theme.
The text highlighting used by the ls
command (for distinguishing file types) can be themed by sourcing the "dircolors" file included with snow. The path to this file will depend on your plugin management method.
For instance, if you use vim-plug and want to apply the snow dircolors to your bash or zsh shell, add the following to ~/.bashrc
or ~/.zshrc
:
eval `dircolors ~/.vim/plugged/snow/shell/dircolors`
Or for the fish shell, add to ~/.config/fish/config.fish
:
eval (dircolors -c ~/.vim/plugged/snow/shell/dircolors)
If you use vundle, replace plugged
in the above paths with bundle
.
Again, the script path will depend on your plugin management method.
For the dark theme in a vim-plug setup, add to ~/.config/fish/config.fish
:
source ~/.vim/plugged/snow/shell/snow_dark.fish
From the templates
directory, run: fish generate.fish
.
Dependencies:
- fish shell
colormath
Python module