mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 05:40:05 +08:00
175 lines
5.4 KiB
Markdown
175 lines
5.4 KiB
Markdown
|
![Logo][logo]
|
||
|
|
||
|
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`
|
||
|
|
||
|
```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](https://github.com/arthur-xavier))
|
||
|
* Ruby
|
||
|
* Rust (thanks: [Erasin](https://github.com/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.
|
||
|
|
||
|
```vim
|
||
|
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][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][issue_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`:
|
||
|
|
||
|
```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](https://alexpearce.me/2014/05/italics-in-iterm2-vim-tmux/).
|
||
|
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`
|
||
|
|
||
|
```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](http://homeonrails.com/2016/05/truecolor-in-gnome-terminal-tmux-and-neovim/) for more details on setting up tmux.
|
||
|
|
||
|
For Vim inside tmux, you can add the following snippet in your `~/.vimrc`
|
||
|
|
||
|
```viml
|
||
|
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 example `vimLineComment`
|
||
|
* `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](https://github.com/laggardkernel): Startup time improvement
|
||
|
* [Erasin](https://github.com/erasin): Rust support
|
||
|
* [Malcolm Ramsay - malramsay64](https://github.com/malramsay64): Gracefully fail if colorscheme is not properly loaded
|
||
|
* [Arthur Xavier](https://github.com/arthur-xavier): PureScript support
|
||
|
* [keremc](https://github.com/keremc): Tip Vim true color support inside tmux
|
||
|
* [jetm](https://github.com/jetm): C/C++ highlighting
|
||
|
|
||
|
[logo]: screenshots/new-logo.png
|
||
|
|
||
|
[issue_3]: https://github.com/rakr/vim-one/issues/3
|
||
|
[issue_21]: https://github.com/rakr/vim-one/issues/21
|