Light and dark vim colorscheme, shamelessly stolen from atom (another excellent text editor). One supports true colors and falls back gracefully and automatically if your environment does not support this feature.
Vim Airline theme
Add the following line to your ~/.vimrc
or ~/.config/nvim/init.vim
let g:airline_theme='one'
As for the colorscheme, this theme comes with light and dark flavors.
List of enhanced language support
Pull requests are more than welcome here. I have created few issues to provide a bare bone roadmap for this color scheme.
Stable
- Asciidoc
- CSS and Sass
- Cucumber features
- Elixir
- Go
- Haskell
- HTML
- JavaScript, JSON
- Markdown
- PureScript (thanks: Arthur Xavier)
- Ruby
- Rust (thanks: Erasin)
- Vim
- XML
In progress
- Jade
- PHP
- Python
- Switch to estilo in progress, not stable at all and does not reflect all the capabilities of the current mainstream version
Installation
You can use your preferred Vim Package Manager to install One.
Usage
One comes in two flavors: light and dark.
colorscheme one
set background=dark " for the dark version
" set background=light " for the light version
set background
has to be called after setting the colorscheme, this explains
the issue #21 where Vim tries to determine the best background when ctermbg
for the Normal
highlight is defined.
Italic support
Some terminals do not support italic, cf. #3.
If your terminal does support italic, you can set the g:one_allow_italics
variable to 1 in your .vimrc
or .config/nvim/init.vim
:
set background=light " for the light version
let g:one_allow_italics = 1 " I love italic for comments
colorscheme one
iTerm2 can support italic, follow the instructions given in this blog post by Alex Pearce. Make sure to read the update if you are using tmux version 2.1 or above.
True color support
To benefit from the true color support make sure to add the following lines in your .vimrc
or .config/nvim/init.vim
"Credit joshdick
"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
set background=dark " for the dark version
" set background=light " for the light version
colorscheme one
Tmux support
To get true color working in tmux, ensure that the $TERM
environment variable is set to xterm-256color
. Inside the .tmux.conf
file we need to override this terminal and also set the default terminal as 256 color.
# Add truecolor support
set-option -ga terminal-overrides ",xterm-256color:Tc"
# Default terminal is 256 colors
set -g default-terminal "screen-256color"
Note that this only works for Neovim (tested on 0.1.5). For some reason Vim (7.5.2334) doesn't play nice. See blog post by Anton Kalyaev for more details on setting up tmux.
For Vim inside tmux, you can add the following snippet in your ~/.vimrc
set t_8b=^[[48;2;%lu;%lu;%lum
set t_8f=^[[38;2;%lu;%lu;%lum
Note: the ^[
in this snippet is a real escape character. To insert it, press Ctrl-V
and then Esc
.
I've tested the following setup on a Mac:
- iTerm2 nightly build
- Neovim 0.1.4 and 0.1.5-dev
- Vim 7.4.1952
Customising One without fork
Following a request to be able to customise one without the need to fork, one is now exposing a public function to meet this requirement.
After the colorscheme has been initialised, you can call the following function:
one#highlight(group, fg, bg, attribute)
group
: Highlight you want to customise for examplevimLineComment
fg
: foreground color for the highlight, without the '#', for example:ff0000
bg
: background color for the highlight, without the '#', for example:ff0000
attribute
:bold
,italic
,underline
or any comma separated combination
For example:
call one#highlight('vimLineComment', 'cccccc', '', 'none')
Contributors
A special thank you to the following people
- laggardkernel: Startup time improvement
- Erasin: Rust support
- Malcolm Ramsay - malramsay64: Gracefully fail if colorscheme is not properly loaded
- Arthur Xavier: PureScript support
- keremc: Tip Vim true color support inside tmux
- jetm: C/C++ highlighting