/SpaceVim

A community-driven modular vim distribution - The ultimate vim configuration

Primary LanguageVim scriptGNU General Public License v3.0GPL-3.0

SpaceVim

Wiki | Documentation | Twitter | Community | Sponsors | Gitter Chat | 中文官网

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

SpaceVim is a community-driven modular vim distribution. It manages collections of plugins in layers, which help collect related packages together to provide IDE-like features. SpaceVim is not just a vimrc but an ultimate Vim configuration, It contains many built-in features.

welcome-page

The last release is v0.8.0, check out following-HEAD page for what happened since last release.

See the quick start guide, documentation or the available layers for more information. If you have any questions about SpaceVim, please follow the Getting Help guide.

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

Throughput Graph

New Features

This is a list of latest features implemented in SpaceVim:

Use toml as default configuration

here is an example for using toml as SpaceVim config:

# This is basic configuration example for SpaceVim

# All SpaceVim option below [option] section
[options]
    # set spacevim theme. by default colorscheme layer is not loaded,
    # if you want to use more colorscheme, please load the colorscheme
    # layer
    colorscheme = "gruvbox"
    background = "dark"
    # Disable guicolors in basic mode, many terminal do not support 24bit
    # true colors
    enable_guicolors = false
    # Disable statusline separator, if you want to use other value, please
    # install nerd fonts
    statusline_separator = "nil"
    statusline_inactive_separator = "bar"
    buffer_index_type = 4
    windows_index_type = 3
    enable_tabline_filetype_icon = false
    enable_statusline_mode = false
    statusline_unicode_symbols = false
    # Enable vim compatible mode, avoid changing origin vim key bindings
    vimcompatible = true

# Enable autocomplete layer
[[layers]]
name = 'autocomplete'
auto-completion-return-key-behavior = "complete"
auto-completion-tab-key-behavior = "cycle"

[[layers]]
name = 'shell'
default_position = 'top'
default_height = 30

Iedit mode

SpaceVim uses powerful iedit mode to quick edit multiple occurrences of a symbol or selection. Two new modes:iedit-Normal/iedit-Insert

The default color for iedit is red/green which is based on the current colorscheme.

iedit mode

Highlight cursor symbol

SpaceVim supports highlighting of the current symbol on demand and adds a transient state to easily navigate and rename this symbol.

highlight cursor symbol

Fly Grep in Vim

With this feature, vim will display the searching result as you type. Of course, it is running asynchronously. Before using this feature, you need to install a searching tool. FlyGrep works through search tools: ag, rg, ack, pt and grep, Choose one you like.

searching project

Mnemonic key bindings navigation

You don't need to remember any key bindings, as the mapping guide will show up after the SPC is pressed. The mapping guide is also available for g, z, and s.

mapping guide

Help description for key bindings

use SPC h d k to get the help description of a key binding, and gd to find definition of key bindings.

describe key bindings

Asynchronous plugin manager

create an UI for dein.vim - the best asynchronous vim plugin manager

UI for dein

For more features, please read SpaceVim's Blog

Project layout

├─ .ci/                           build automation
├─ .github/                       issue/PR templates
├─ .SpaceVim.d/                   project specific configuration
├─ autoload/SpaceVim.vim          SpaceVim core file
├─ autoload/SpaceVim/api/         Public APIs
├─ autoload/SpaceVim/layers/      available layers
├─ autoload/SpaceVim/plugins/     buildin plugins
├─ autoload/SpaceVim/mapping/     mapping guide
├─ doc/                           help(cn/en)
├─ docs/                          website(cn/en)
├─ wiki/                          wiki(cn/en)
├─ bin/                           executable
└─ test/                          tests

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.

For more info please check our development guidelines.

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

Buy Me a Coffee at ko-fi.com

wechat alipay

Bitcoin: 1DtuVeg81c2L9NEhDaVTAAbrCR3pN5xPFv

Credits & Thanks

This project exists thanks to all the people who have contributed: