538 lines
19 KiB
Plaintext
538 lines
19 KiB
Plaintext
*everforest.txt* Comfortable & Pleasant Color Scheme for Vim
|
|
*everforest*
|
|
>
|
|
______ ____ __
|
|
/ ____/ _____ _____/ __/___ ________ _____/ /_
|
|
/ __/ | | / / _ \/ ___/ /_/ __ \/ ___/ _ \/ ___/ __/
|
|
/ /___ | |/ / __/ / / __/ /_/ / / / __(__ ) /_
|
|
/_____/ |___/\___/_/ /_/ \____/_/ \___/____/\__/
|
|
<
|
|
|
|
==============================================================================
|
|
CONTENTS *everforest-contents*
|
|
|
|
Introduction |everforest-introduction|
|
|
Installation |everforest-installation|
|
|
Usage |everforest-usage|
|
|
Configuration |everforest-configuration|
|
|
FAQ |everforest-faq|
|
|
|
|
Note: Type |gO| in neovim to show the outline of contents.
|
|
|
|
==============================================================================
|
|
INTRODUCTION *everforest-introduction*
|
|
|
|
Everforest is a green based color scheme, it's designed to be warm and soft
|
|
in order to protect developers' eyes.
|
|
|
|
Features~
|
|
|
|
- Green based but warm-toned.
|
|
- Designed to have soft contrast for eye protection.
|
|
- Works well with [redshift](https://github.com/jonls/redshift) and [f.lux](https://justgetflux.com).
|
|
- Customizable.
|
|
- Rich support for common file types and plugins.
|
|
- Tree-sitter support.
|
|
- Semantic highlighting support.
|
|
- Italic support 🎉
|
|
|
|
==============================================================================
|
|
INSTALLATION *everforest-installation*
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Via Plugin Manager~
|
|
|
|
Take [vim-plug](https://github.com/junegunn/vim-plug) for example:
|
|
>
|
|
Plug 'sainnhe/everforest'
|
|
<
|
|
For better syntax highlighting support, please install
|
|
https://github.com/sheerun/vim-polyglot or https://github.com/nvim-treesitter/nvim-treesitter.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Via Pack Feature~
|
|
|
|
1. Create a new directory: `$ mkdir -p ~/.vim/pack/colors/opt`
|
|
|
|
2. Clone this repository: `$ git clone --depth 1 https://github.com/sainnhe/everforest.git ~/.vim/pack/colors/opt/everforest`
|
|
|
|
3. Generate help tags: `:helptags ~/.vim/pack/colors/opt/everforest/doc/`
|
|
|
|
4. Add `packadd! everforest` to your vimrc.
|
|
|
|
Note: If you install this color scheme to `pack/*/start`, you still need to add `packadd! everforest` to your vimrc. [sainnhe/gruvbox-material#60](https://github.com/sainnhe/gruvbox-material/issues/60)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Manually~
|
|
|
|
1. Clone the repository: `git clone --depth 1 https://github.com/sainnhe/everforest.git`
|
|
|
|
2. Copy `/path/to/everforest/autoload/everforest.vim` to
|
|
`~/.vim/autoload/` .
|
|
|
|
3. Copy `/path/to/everforest/colors/everforest.vim` to
|
|
`~/.vim/colors/` .
|
|
|
|
4. Copy `/path/to/everforest/doc/everforest.txt` to
|
|
`~/.vim/doc/` and execute `:helptags ~/.vim/doc/` to generate help tags.
|
|
|
|
5. To install [airline](https://github.com/vim-airline/vim-airline) theme,
|
|
copy `/path/to/everforest/autoload/airline/themes/everforest.vim`
|
|
to `~/.vim/autoload/airline/themes/` .
|
|
|
|
6. To install [lightline](https://github.com/itchyny/lightline.vim) theme,
|
|
copy `/path/to/everforest/autoload/lightline/colorscheme/everforest.vim`
|
|
to `~/.vim/autoload/lightline/colorscheme/` .
|
|
|
|
7. To install [lualine](https://github.com/nvim-lualine/lualine.nvim) theme,
|
|
copy `/path/to/everforest/lua/lualine/themes/everforest.lua`
|
|
to `~/.config/nvim/lua/lualine/themes/` .
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
AUR~
|
|
|
|
There are some packages available for Arch Linux users in AUR:
|
|
|
|
- [vim-everforest-git](https://aur.archlinux.org/pkgbase/vim-everforest-git/)
|
|
- [neovim-everforest-git](https://aur.archlinux.org/pkgbase/neovim-everforest-git/)
|
|
|
|
==============================================================================
|
|
USAGE *everforest-usage*
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
Vim~
|
|
|
|
Put something like this in your vimrc:
|
|
>
|
|
" Important!!
|
|
if has('termguicolors')
|
|
set termguicolors
|
|
endif
|
|
|
|
" For dark version.
|
|
set background=dark
|
|
|
|
" For light version.
|
|
set background=light
|
|
|
|
" Set contrast.
|
|
" This configuration option should be placed before `colorscheme everforest`.
|
|
" Available values: 'hard', 'medium'(default), 'soft'
|
|
let g:everforest_background = 'soft'
|
|
|
|
" For better performance
|
|
let g:everforest_better_performance = 1
|
|
|
|
colorscheme everforest
|
|
<
|
|
See |everforest-configuration| for more configuration options.
|
|
|
|
If you want to apply this color scheme temporarily, run this command in
|
|
vim(this may cause broken colors):
|
|
>
|
|
:colorscheme everforest
|
|
<
|
|
------------------------------------------------------------------------------
|
|
|
|
Airline~
|
|
|
|
To enable [airline](https://github.com/vim-airline/vim-airline) color
|
|
scheme, put this in your vimrc:
|
|
>
|
|
let g:airline_theme = 'everforest'
|
|
<
|
|
To apply it without reloading:
|
|
>
|
|
:AirlineTheme everforest
|
|
<
|
|
------------------------------------------------------------------------------
|
|
|
|
Lightline~
|
|
|
|
To enable [lightline](https://github.com/itchyny/lightline.vim) color
|
|
scheme, put this in your vimrc:
|
|
>
|
|
let g:lightline = {}
|
|
let g:lightline.colorscheme = 'everforest'
|
|
|
|
" Or this line:
|
|
let g:lightline = {'colorscheme' : 'everforest'}
|
|
<
|
|
To apply it without reloading:
|
|
>
|
|
:let g:lightline.colorscheme = 'everforest'
|
|
:call lightline#init()
|
|
:call lightline#colorscheme()
|
|
<
|
|
------------------------------------------------------------------------------
|
|
|
|
Lualine~
|
|
|
|
To enable [lualine](https://github.com/nvim-lualine/lualine.nvim) color
|
|
scheme, put this in your init.lua:
|
|
>
|
|
require'lualine'.setup {
|
|
options = {
|
|
theme = 'everforest'
|
|
}
|
|
}
|
|
<
|
|
To apply it without reloading:
|
|
>
|
|
:lua require'lualine'.setup {options = {theme = 'everforest'}}
|
|
<
|
|
==============================================================================
|
|
CONFIGURATION *everforest-configuration*
|
|
|
|
Note: the configuration options should be placed before `colorscheme everforest`
|
|
|
|
E.g.
|
|
>
|
|
if has('termguicolors')
|
|
set termguicolors
|
|
endif
|
|
set background=light
|
|
|
|
let g:everforest_background = 'soft'
|
|
let g:everforest_better_performance = 1
|
|
|
|
colorscheme everforest
|
|
let g:lightline.colorscheme = 'everforest'
|
|
<
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_background*
|
|
g:everforest_background~
|
|
|
|
The background contrast used in this color scheme.
|
|
|
|
Type: |String|
|
|
Available values: `'hard'`, `'medium'`, `'soft'`
|
|
Default value: `'medium'`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_enable_italic*
|
|
g:everforest_enable_italic~
|
|
|
|
To enable italic in this color scheme, set this option to `1`.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
Note: This option is designed to use with fonts that support cursive italics.
|
|
See |everforest-faq| for more information.
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_disable_italic_comment*
|
|
g:everforest_disable_italic_comment~
|
|
|
|
By default, italic is enabled in `Comment`. To disable italic in `Comment`, set
|
|
this option to `1`.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_cursor*
|
|
g:everforest_cursor~
|
|
|
|
Customize the cursor color, only works in GUI clients.
|
|
|
|
Type: |String|
|
|
Available values: `'auto'`, `'red'`, `'orange'`, `'yellow'`, `'green'`,
|
|
`'aqua'`, `'blue'`, `'purple'`
|
|
Default value: `'auto'`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_transparent_background*
|
|
g:everforest_transparent_background~
|
|
|
|
To use transparent background, set this option to `1`.
|
|
|
|
If you want more ui components to be transparent (for example, status line
|
|
background), set this option to `2`.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`, `2`
|
|
Default value: `0`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_sign_column_background*
|
|
g:everforest_sign_column_background~
|
|
|
|
By default, the background color of sign column is different from normal text.
|
|
If you want to make it the same as normal text, set this option to `'none'`.
|
|
|
|
Type: |String|
|
|
Available values: `'default'`, `'none'`
|
|
Default value: `'default'`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_spell_foreground*
|
|
g:everforest_spell_foreground~
|
|
|
|
By default, this color scheme won't color the foreground of |spell|, instead
|
|
colored under curls will be used. If you also want to color the foreground,
|
|
set this option to `'colored'`.
|
|
|
|
Type: |String|
|
|
Available values: `'none'`, `'colored'`
|
|
Default value: `'none'`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_ui_contrast*
|
|
g:everforest_ui_contrast~
|
|
|
|
The contrast of line numbers, indent lines, etc.
|
|
|
|
Type: |String|
|
|
Available values: `'low'`, `'high'`
|
|
Default value: `'low'`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_show_eob*
|
|
g:everforest_show_eob~
|
|
|
|
Whether to show |hl-EndOfBuffer|.
|
|
|
|
Type: |Number|
|
|
Available values: `1`, `0`
|
|
Default value: `1`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_diagnostic_text_highlight*
|
|
g:everforest_diagnostic_text_highlight~
|
|
|
|
Some plugins support highlighting error/warning/info/hint texts, by default
|
|
these texts are only underlined, but you can use this option to also highlight
|
|
the background of them.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
Currently, the following plugins are supported:
|
|
|
|
- neovim's built-in language server client
|
|
- https://github.com/neoclide/coc.nvim
|
|
- https://github.com/prabirshrestha/vim-lsp
|
|
- https://github.com/ycm-core/YouCompleteMe
|
|
- https://github.com/dense-analysis/ale
|
|
- https://github.com/neomake/neomake
|
|
- https://github.com/vim-syntastic/syntastic
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_diagnostic_line_highlight*
|
|
g:everforest_diagnostic_line_highlight~
|
|
|
|
Some plugins support highlighting error/warning/info/hint lines, but this
|
|
feature is disabled by default in this color scheme. To enable this feature,
|
|
set this option to `1`.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
Currently, the following plugins are supported:
|
|
|
|
- https://github.com/neoclide/coc.nvim
|
|
- https://github.com/ycm-core/YouCompleteMe
|
|
- https://github.com/dense-analysis/ale
|
|
- https://github.com/vim-syntastic/syntastic
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_diagnostic_virtual_text*
|
|
g:everforest_diagnostic_virtual_text~
|
|
|
|
Some plugins can use virtual text feature of neovim to display
|
|
error/warning/info/hint information, you can use this option to adjust the
|
|
colors of it.
|
|
|
|
Type: |String|
|
|
Available values: `'grey'`, `'colored'`
|
|
Default value: `'grey'`
|
|
|
|
Currently, the following plugins are supported:
|
|
|
|
- neovim's built-in language server client
|
|
- https://github.com/neoclide/coc.nvim
|
|
- https://github.com/prabirshrestha/vim-lsp
|
|
- https://github.com/dense-analysis/ale
|
|
- https://github.com/neomake/neomake
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_current_word*
|
|
g:everforest_current_word~
|
|
|
|
Some plugins can highlight the word under current cursor, you can use this
|
|
option to control their behavior.
|
|
|
|
Type: |String|
|
|
Available values: `'grey background'`, `'bold'`, `'underline'`, `'italic'`
|
|
Default value: `'grey background'` when not in transparent mode, `'bold'`
|
|
when in transparent mode.
|
|
|
|
Currently, the following plugins are supported:
|
|
|
|
- https://github.com/neoclide/coc-highlight
|
|
- https://github.com/dominikduda/vim_current_word
|
|
- https://github.com/RRethy/vim-illuminate
|
|
- https://github.com/itchyny/vim-cursorword
|
|
- https://github.com/prabirshrestha/vim-lsp
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_disable_terminal_colors*
|
|
g:everforest_disable_terminal_colors~
|
|
|
|
Setting this option to `1` will disable terminal colors provided by this color
|
|
scheme so you can remain terminal colors the same when using |:terminal| in
|
|
vim and outside of vim.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_lightline_disable_bold*
|
|
g:everforest_lightline_disable_bold~
|
|
|
|
By default, bold is enabled in lightline color scheme. To disable bold in
|
|
lightline color scheme, set this option to `1`.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
Note: this configuration option doesn't need to be placed before `colorscheme everforest`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_better_performance*
|
|
g:everforest_better_performance~
|
|
|
|
The loading time of this color scheme is very long because too many file types
|
|
and plugins are optimized. This feature allows you to load part of the code on
|
|
demand by placing them in the `after/syntax` directory.
|
|
|
|
Enabling this option will reduce loading time by approximately 50%.
|
|
|
|
Type: |Number|
|
|
Available values: `0`, `1`
|
|
Default value: `0`
|
|
|
|
------------------------------------------------------------------------------
|
|
*g:everforest_colors_override*
|
|
g:everforest_colors_override
|
|
|
|
Override color palette. The available keys can be found in
|
|
`/path/to/everforest/autoload/everforest.vim`.
|
|
|
|
E.g.
|
|
|
|
let g:everforest_colors_override = {'bg0': ['#202020', '234'], 'bg2': ['#282828', '235']}
|
|
colorscheme everforest
|
|
|
|
Type: |Dictionary|
|
|
Default value: `{}`
|
|
|
|
==============================================================================
|
|
FAQ *everforest-faq*
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
The colors don't match those in the screenshots.~
|
|
|
|
1. This color scheme is mainly designed for true colors, `set termguicolors`
|
|
is required. Check output of `vim --version`, maybe your vim doesn't support
|
|
`termguicolors`.
|
|
|
|
2. Maybe your terminal emulator doesn't support true colors, you can test it
|
|
using [this script](https://unix.stackexchange.com/questions/404414/print-true-color-24-bit-test-pattern).
|
|
|
|
3. If you are running vim in tmux, you need to override default true colors of
|
|
tmux, as tmux cannot display true colors properly:
|
|
[#1246 How to use true colors in vim under tmux?](https://github.com/tmux/tmux/issues/1246)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
The configuration options don't work.~
|
|
|
|
You should place them before `colorscheme everforest` .
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
A lot of errors are detected if I install with pack feature.~
|
|
|
|
You'll need to add `packadd! everforest` before applying this color scheme.
|
|
Check [sainnhe/gruvbox-material#60](https://github.com/sainnhe/gruvbox-material/issues/60)
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
How to enable cursive italic keywords?~
|
|
|
|
1. Install a font that supports cursive italics, for example https://www.sainnhe.dev/post/patch-fonts-with-cursive-italic-styles/
|
|
|
|
2. Enable italic keywords in this color scheme: `let g:everforest_enable_italic = 1`
|
|
|
|
3. (Optional) Disable italic comment: `let g:everforest_disable_italic_comment = 1`
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
The comment color looks weird.~
|
|
|
|
Some terminal emulators don't support italics, which may cause the comment
|
|
color looks weird. See https://github.com/sainnhe/gruvbox-material/issues/5#issuecomment-729586348
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
How to use custom colors?~
|
|
>
|
|
function! s:everforest_custom() abort
|
|
" Link a highlight group to a predefined highlight group.
|
|
" See `colors/everforest.vim` for all predefined highlight groups.
|
|
highlight! link groupA groupB
|
|
highlight! link groupC groupD
|
|
|
|
" Initialize the color palette.
|
|
" The first parameter is a valid value for `g:everforest_background`,
|
|
" and the second parameter is a valid value for `g:everforest_colors_override`.
|
|
let l:palette = everforest#get_palette('medium', {})
|
|
" Define a highlight group.
|
|
" The first parameter is the name of a highlight group,
|
|
" the second parameter is the foreground color,
|
|
" the third parameter is the background color,
|
|
" the fourth parameter is for UI highlighting which is optional,
|
|
" and the last parameter is for `guisp` which is also optional.
|
|
" See `autoload/everforest.vim` for the format of `l:palette`.
|
|
call everforest#highlight('groupE', l:palette.red, l:palette.none, 'undercurl', l:palette.red)
|
|
endfunction
|
|
|
|
augroup EverforestCustom
|
|
autocmd!
|
|
autocmd ColorScheme everforest call s:everforest_custom()
|
|
augroup END
|
|
|
|
colorscheme everforest
|
|
<
|
|
Note: Make sure to define the `augroup` before declare the `colorscheme`.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
What's your status line configuration?~
|
|
|
|
See this [article](https://www.sainnhe.dev/post/status-line-config/).
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
What's the font used here?~
|
|
|
|
See https://www.sainnhe.dev/post/patch-fonts-with-cursive-italic-styles/
|
|
|
|
==============================================================================
|
|
vim:tw=78:nosta:noet:ts=8:sts=0:ft=help:et:sw=4:fen:fdm=marker:fmr={{{,}}}:
|