Josh Dick
22c8bb6067
|
8 years ago | |
---|---|---|
.github | 8 years ago | |
autoload | 8 years ago | |
build | 8 years ago | |
colors | 8 years ago | |
.gitignore | 8 years ago | |
CONTRIBUTING.md | 8 years ago | |
LICENSE | 9 years ago | |
One Dark.itermcolors | 9 years ago | |
One Dark.terminal | 8 years ago | |
README.md | 8 years ago | |
preview.png | 9 years ago | |
preview_airline.png | 8 years ago | |
preview_lightline.png | 8 years ago |
README.md
onedark.vim
A dark Vim color scheme for the GUI and 16/256-color terminals, based on FlatColor, with colors inspired by the excellent One Dark syntax theme for the Atom text editor.
Installation
- If you use Vim in the terminal, determine whether your terminal emulator has 24-bit color ("true color") support.
Note that proper colors will always be shown when using GUI Vim, regardless of the configuration done in this step.
-
If your terminal emulator DOES support 24-bit color, add the following lines to your
~/.vimrc
(this works for Vim patch 7.4.1799 and above, as well as Neovim version 0.1.3 and above; if you use tmux, see the tmux-related notes at the top):"Use 24-bit (true-color) mode in Vim/Neovim when outside tmux. "If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support "(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.) if (empty($TMUX)) if (has("nvim")) "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > let $NVIM_TUI_ENABLE_TRUE_COLOR=1 endif "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > if (has("termguicolors")) set termguicolors endif endif
-
If you [additionally] use older versions of Vim/Neovim than mentioned above, or your terminal emulator DOES NOT support 24-bit color, or you use tmux 2.1 or earlier:
You have two options, 16-color mode (which is preferred) or 256-color mode. These modes are selected via the
g:onedark_termcolors
setting. When Vim/Neovim are actively using true-color mode as configured above, theg:onedark_termcolors
setting will be be ignored. However,g:onedark_termcolors
can still coexist with the configuration above. For instance, when tmux 2.1 or earlier and/or older Vim/Neovim versions are used with the configuration above,g:onedark_termcolors
will be honored/not ignored.-
16-color mode is the preferred option, since its colors are more accurate than those of 256-color mode. However, you'll need to set your terminal's color palette to this color scheme's custom 16-color palette, since 16-color mode will cause the color scheme to use your terminal emulator's native 16 colors. If you don't use the custom 16-color palette in your terminal emulator when 16-color mode is enabled, the color scheme's colors will not display correctly.
The canonical version of the 16-color palette is an iTerm2 color scheme called
One Dark.itermcolors
, which lives in the root of this repository.One Dark.itermcolors
only works with the test/beta releases of iTerm2 (versions 2.9.x and later.) You should be able to easily convert the iTerm2 color scheme for use with your terminal emulator of choice by using a tool like termcolors.Assuming you're using the custom 16-color palette as described above, add the following line to your
~/.vimrc
to enable 16-color mode:let g:onedark_termcolors=16
-
256-color mode is enabled by default with no additional configuration, but colors are less accurate since they are approximated using a 256-color palette. The background color will appear darker, and most other colors will appear brighter. If you don't want to change your terminal's color palette as described in the 16-color mode section above, and your terminal doesn't support 24-bit color, 256-color mode is your only option.
Although 256-color mode is enabled by default (when not using 24-bit color as described above), you can explicitly enable it by adding the following line to your
~/.vimrc
:let g:onedark_termcolors=256
-
-
Place
onedark.vim
in your~/.vim/colors/
directory either manually or by using your Vim plug-in manager of choice, then add the following lines to your~/.vimrc
below the lines you added during step 1:syntax on colorscheme onedark
-
Installing the sheerun/vim-polyglot plug-in is recommended for improved syntax highlighting for various languages, but is not required.
Options
Note: All options should be set before the colorscheme onedark
line in your ~/.vimrc
.
-
g:onedark_termcolors
(see Installation (above) before using this setting): Set to256
for 256-color terminals (the default), or set to16
to use your terminal emulator's native colors. -
g:onedark_terminal_italics
: Set to1
if your terminal emulator supports italics;0
otherwise (the default). If you're using iTerm2 on macOS, you might need to use a special TERMINFO to get italics working.
lightline.vim Colorscheme
This repository includes a companion lightline.vim colorscheme for use with onedark.vim.
The lightline.vim colorscheme:
- Depends on onedark.vim for its colors, and must therefore be used in conjunction with it.
- Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim.
Installation
(These instructions assume that lightline.vim and onedark.vim are already installed and configured to your liking.)
Place onedark.vim/autoload/lightline/colorscheme/onedark.vim
in your ~/.vim/autoload/lightline/colorscheme/
directory either manually or by using your Vim plug-in manager of choice, then add the following lines to your ~/.vimrc
(or merge them into your existing lightline.vim configuration):
let g:lightline = {
\ 'colorscheme': 'onedark',
\ }
vim-airline Theme
This repository includes a companion vim-airline theme for use with onedark.vim.
The vim-airline theme:
- Depends on onedark.vim for its colors, and must therefore be used in conjunction with it.
- Works with both color modes available in onedark.vim (16 or 256 colors), as specified in the configuration for onedark.vim.
- Is based on vim-airline's "tomorrow" theme.
Installation
(These instructions assume that vim-airline and onedark.vim are already installed and configured to your liking.)
Place onedark.vim/autoload/airline/themes/onedark.vim
in your ~/.vim/autoload/airline/themes/
directory either manually or by using your Vim plug-in manager of choice, then add the following line to your ~/.vimrc
:
let g:airline_theme='onedark'
Miscellaneous
Customizing onedark.vim's Look Without Forking the Repository
onedark.vim exposes a function called onedark#set_highlight
that you can call from within your ~/.vimrc
in order to customize the look of onedark.vim by overriding its defaults.
The function's first argument should be the name of a highlight group, and its second argument should be style data.
For example, to remove the background color only when running in terminals (outside GUI mode and for use in transparent terminals,) place the following lines before the colorscheme onedark
line in your ~/.vimrc
:
" onedark.vim override: Don't set a background color when running in a terminal;
" just use the terminal's background color
" `gui` is the hex color code used in GUI mode/nvim true-color mode
" `cterm` is the color code used in 256-color mode
" `cterm16` is the color code used in 16-color mode
if (has("autocmd") && !has("gui"))
let s:white = { "gui": "#ABB2BF", "cterm": "145", "cterm16" : "7" }
autocmd ColorScheme * call onedark#set_highlight("Normal", { "fg": s:white }) " No `bg` setting
end
More examples of highlight group names and style data can be found in onedark.vim's source code (colors/onedark.vim
inside this repository).
tmux theme
If you'd like a tmux theme that complements onedark.vim, @odedlaz has you covered.
Contributing
If you'd like to contribute to onedark.vim, check out the contribution guidelines.
Preview images were taken using:
- iTerm2 terminal emulator on macOS
- 12 pt. PragmataPro Mono font
- vim-polyglot plug-in