*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={{{,}}}: