8.6 KiB
Documentation | Twitter | Community | Gitter Chat
SpaceVim is a community-driven vim distribution that seeks to provide layer featur, escpecially for neovim. It offers a variety of layers to choose from. to create a suitable vim development environment, you just need to select the required layers.
See the documentation or the list of layers for more information.
Table of Contents
- Introduction
- Features
- Documentation
- Getting Help
- Prerequisites
- neovim
- Linux distros
- macOS
- Windows
- vim
- Linux distros
- macOS
- Windows
- neovim
- Install
- Update
- Contributions
- Community
- Support SpaceVim
- Report bugs
- contribute to SpaceVim
- Write post about SpaceVim
- Credits & Thanks
Introduction
SpaceVim is a community-driven vim distribution with a bundle of modular configuration, here we call these modules as layers, each layer has different plugins and config, users just need to select the layers they need. It got inspired by spacemacs. If you use SpaceVim, please star it on github. It's a great way of getting feedback and gives me the kick to put more time into development.
If you are new to vim, you should learning about Vim in general, read vim-galore.
Features
- Great documentation: access documentation in Vim with :h SpaceVim.
- Beautiful GUI: you'll love the awesome UI and its useful features.
- Mnemonic key bindings: commands have mnemonic prefixes like [Window] for all the window and buffer commands or [Unite] for the unite work flow commands.
- Lazy load plugins: Lazy-load 90% of plugins with [dein.vim]
- Batteries included: discover hundreds of ready-to-use packages nicely organised in configuration layers following a set of conventions.
Community
Try these Neovim hangouts for any questions, problems or comments.
- Ask
- issue tracker for issue and feature requests
- vi StackExchange for "how to" & configuration questions
- for hugs & pithy comments
- Chat
- Discuss
Install
Linux/Mac
curl -sLf https://spacevim.org/install.sh | bash
before use SpaceVim, you should install the plugin by call dein#install()
Installation of neovim/vim with python support:
for more info about the install script, please check:
curl -sLf https://spacevim.org/install.sh | bash -s -- -h
windows support
- For vim in windows, please just clone this repo as vimfiles in you Home directory.
by default, when open a cmd, the current dir is your Home directory, run this command in cmd.
make sure you have a backup of your own vimfiles. also you need remove
~/_vimrc
in your home directory.
git clone https://github.com/SpaceVim/SpaceVim.git vimfiles
- For neovim in windows, please clone this repo as
AppData\Local\nvim
in your home directory. for more info, please check out neovim's wiki. by default, when open a cmd, the current dir is your Home directory, run this command in cmd.
git clone https://github.com/SpaceVim/SpaceVim.git AppData\Local\nvim
Neovim centric - Dark powered mode of SpaceVim.
By default, SpaceVim use these dark powered plugins:
- deoplete.nvim - Dark powered asynchronous completion framework for neovim
- dein.vim - Dark powered Vim/Neovim plugin manager
TODO:
- defx.nvim - Dark powered file explorer
- deoppet.nvim - Dark powered snippet plugin
- denite.nvim - Dark powered asynchronous unite all interfaces for Neovim/Vim8
Modular configuration
- SpaceVim will load custom configuration from
~/.local.vim
and.local.vim
in current directory. - SpaceVim support
~/.SpaceVim.d/init.vim
and./SpaceVim.d/init.vim
.
Here is an example:
" Here are some basic customizations, please refer to the top of the vimrc
" file for all possible options:
let g:spacevim_default_indent = 3
let g:spacevim_max_column = 80
let g:spacevim_colorscheme = 'my_awesome_colorscheme'
let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug
" Change the default directory where all miscellaneous persistent files go.
" By default it is ~/.cache/vimfiles.
let g:spacevim_plugin_bundle_dir = "/some/place/else"
" By default, language specific plugins are not loaded. This can be changed
" with the following:
let g:spacevim_plugin_groups_exclude = ['ruby', 'python']
" If there are groups you want always loaded, you can use this:
let g:spacevim_plugin_groups_include = ['go']
" Alternatively, you can set this variable to load exactly what you want:
let g:spacevim_plugin_groups = ['core', 'web']
" If there is a particular plugin you don't like, you can define this
" variable to disable them entirely:
let g:spacevim_disabled_plugins=['vim-foo', 'vim-bar']
" If you want to add some custom plugins, use these options:
let g:spacevim_custom_plugins = [
\ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
\ ['wsdjeg/GitHub.vim'],
\ ]
" Anything defined here are simply overrides
set wildignore+=\*/node_modules/\*
set guifont=Wingdings:h10
Custom configuration
SpaceVim use ~/.SpaceVim.d/init.vim
as default global init file. you can set
SpaceVim-options or config layers in it. SpaceVim also will add ~/.SpaceVim.d/
into runtimepath. so you can write your own vim script in it.
SpaceVim also support local config file for project, the init file is .SpaceVim.d/init.vim
in the root of your project. .SpaceVim.d/
will also be added into runtimepath.
here is an example config file for SpaceVim:
" set the options of SpaceVim
let g:spacevim_colorscheme = 'solarized'
" setting layers, load 'lang#java' layer.
call SpaceVim#layers#load('lang#java')
" add custom plugins.
let g:spacevim_custom_plugins = [
\ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
\ ['wsdjeg/GitHub.vim'],
\ ]
" custom mappings:
nnoremap <c-l> :Ydc<cr>
Support SpaceVim
report bugs
If you get any issues, please open an issue with the ISSUE_TEMPLATE. It is useful for me to debug for this issue.
contribute to SpaceVim
Credits & Thanks
- vimdoc generate doc file for SpaceVim
- Rafael Bodill and his vim-config
- Bailey Ling and his dotvim