Skip to content

💕 A community-driven vim distribution inspired by spacemacs

License

Notifications You must be signed in to change notification settings

xuhuairuogu/SpaceVim

 
 

Repository files navigation

SpaceVim

Wiki | Documentation | Twitter | Community | Gitter Chat

Build Status Version MIT License Doc Average time to resolve an issue Percentage of issues still open

SpaceVim is a community-driven vim distribution that seeks to provide layer feature, especially 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.

Here is a throughput graph of the repository for the last few weeks:

Throughput Graph

Table of Contents

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.

welcome-page

If you are new to vim, you should learn 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.
  • Neovim centric: Dark powered mode of SpaceVim

Mnemonic key bindings

By default the guide buffer will be displayed 1000ms after the key has been pressed. You can change the delay by setting 'timeoutlen' option to your liking (the value is in milliseconds).

for example, after pressing <Space> in normal mode, you will see :

mapping-guide

this guide show you all the available key bindings begin with [SPC], you can type b for all the buffer mappings, p for project mappings, etc. after pressing <C-h> in guide buffer, you will get paging and help info in the statusline.

here is the guide for the default mappings in SpaceVim:

spc

Unite work flow

unite

module statusline

The core#statusline layer provide a heavily customized powerline with the following capabilities:, It is inspired by spacemacs's mode-line. and this layer is loaded by default.

  • show the window number
  • color code for current state
  • show the number of search results
  • toggle syntax checking info
  • toggle battery info
  • toggle minor mode lighters

search status

Documentation

Quick start guide

SpaceVim load custom configuration from ~/.SpaceVim.d/init.vim,

⚠️ It is not ~/.SpaceVim/init.vim, user should not change anything in ~/.SpaceVim/.

here is an example:

" Here are some basic customizations, please refer to the ~/.SpaceVim.d/init.vim
" file for all possible options:
let g:spacevim_default_indent = 3
let g:spacevim_max_column     = 80

" Change the default directory where all miscellaneous persistent files go.
" By default it is ~/.cache/vimfiles/.
let g:spacevim_plugin_bundle_dir = '~/.cache/vimfiles/'

" set SpaceVim colorscheme
let g:spacevim_colorscheme = 'jellybeans'

" Set plugin manager, you want to use, default is dein.vim
let g:spacevim_plugin_manager = 'dein'  " neobundle or dein or vim-plug

" use space as `<Leader>`
let mapleader = "\<space>"

" Set windows shortcut leader [Window], default is `s`
let g:spacevim_windows_leader = 's'

" Set unite work flow shortcut leader [Unite], default is `f`
let g:spacevim_unite_leader = 'f'

" By default, language specific plugins are not loaded. This can be changed
" with the following, then the plugins for go development will be loaded.
call SpaceVim#layers#load('lang#go')

" loaded ui layer
call SpaceVim#layers#load('ui')

" If there is a particular plugin you don't like, you can define this
" variable to disable them entirely:
let g:spacevim_disabled_plugins=[
    \ ['junegunn/fzf.vim'],
    \ ]

" 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'],
    \ ]

" set the guifont
let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'

Comprehensive documentation is available for each layer by :h SpaceVim.

You can also check the general documentation.

Getting Help

If you need help, ask your question in the Gitter Chat, a member of the community will help you out.

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
    • Twitter Follow for hugs & pithy comments
  • Chat
    • Gitter
    • QQ
    • Facebook
  • Discuss

Install

Linux/Mac

Install SpaceVim with the command below

curl -sLf https://spacevim.org/install.sh | bash

After SpaceVim is installed, launch vim and SpaceVim will automatically install plugins

Once plugins start installing, at the bottom of the vim window, you will see [dein] Install started: (YYYY/MM/DD HH:MM:SS)

Please wait for all the plugins to complete installing before using vim. Once the plugin installation completes, you will see [dein] Done: (YYYY/MM/DD HH:MM:SS) . At this point you can start using vim.

SpaceVim required Vim7.4 above or neovim, here is the 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

Update

you can update SpaceVim with the command below:

:SPUpdate SpaceVim

Support SpaceVim

The best way to support SpaceVim is to contribute to it either by reporting bugs, helping the community on the Gitter Chat or sending pull requests.

If you want to show your support financially you can contribute to Bountysource or buy a drink for the maintainer by clicking following icon.

Buy Me a Coffee at ko-fi.com

If you used SpaceVim in a project and you want to show that fact, you can use the SpaceVim badge:

markdown

[![](https://spacevim.org/img/build-with-SpaceVim.svg)](https://spacevim.org)

contribute to SpaceVim

Before contributing be sure to consult the contribution guidelines and conventions.

Write post about SpaceVim

if you want to write something about SpaceVim, and want your post be linked in SpaceVim's blog page, please show us the link.

Credits & Thanks

About

💕 A community-driven vim distribution inspired by spacemacs

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vim Script 100.0%