Convert Figma logo to code with AI

wsdjeg logoSpaceVim

A modular configuration of Vim and Neovim

20,371
1,413
20,371
5

Top Related Projects

89,018

Vim-fork focused on extensibility and usability

38,023

The official Vim repository

18,785

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

26,050

Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.

20,301

Neovim config for the lazy

13,290

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

Quick Overview

SpaceVim is a community-driven modular vim distribution that aims to provide a unified and enhanced development experience. It combines various plugins and configurations to create a powerful, customizable, and user-friendly IDE-like environment within Vim or Neovim.

Pros

  • Extensive plugin ecosystem with pre-configured layers for different programming languages and tools
  • Consistent key bindings across different modes and plugins
  • Highly customizable with easy-to-use configuration options
  • Active community and regular updates

Cons

  • Steep learning curve for users new to Vim or complex IDE-like setups
  • Can be resource-intensive due to the large number of included plugins
  • Some users may find the default configuration overwhelming or unnecessary for their needs

Getting Started

To install SpaceVim, you can use the following one-line command:

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

For Neovim users, use:

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

After installation, launch Vim or Neovim, and SpaceVim will automatically download and install the necessary plugins.

To customize SpaceVim, create or edit the ~/.SpaceVim.d/init.toml file. Here's a basic example:

#=============================================================================
# basic.toml --- basic configuration example for SpaceVim
# Copyright (c) 2016-2020 Wang Shidong & Contributors
# Author: Wang Shidong < wsdjeg at 163.com >
# URL: https://spacevim.org
# License: GPLv3
#=============================================================================

# 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"
    colorscheme_bg = "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_iseparator = "bar"
    buffer_index_type = 4
    windows_index_type = 3
    enable_tabline_filetype_icon = false
    enable_statusline_mode = false
    statusline_unicode = 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

# Add custom plugins
[[custom_plugins]]
repo = "lilydjwg/colorizer"
merged = false

This configuration sets up basic options, enables autocomplete and shell layers, and adds a custom plugin. Adjust the settings according to your preferences.

Competitor Comparisons

89,018

Vim-fork focused on extensibility and usability

Pros of Neovim

  • More lightweight and faster performance
  • Extensive plugin ecosystem with Lua support
  • Active development with frequent updates and improvements

Cons of Neovim

  • Steeper learning curve for new users
  • Requires more manual configuration compared to SpaceVim

Code Comparison

SpaceVim configuration example:

let g:spacevim_enable_guicolors = 1
let g:spacevim_colorscheme = 'gruvbox'
let g:spacevim_enable_tabline_filetype_icon = 1
let g:spacevim_enable_statusline_mode = 1

Neovim configuration example:

vim.opt.termguicolors = true
vim.cmd.colorscheme('gruvbox')
vim.opt.showtabline = 2
vim.opt.showmode = true

Summary

SpaceVim is a distribution of Vim that comes pre-configured with many features and plugins, making it easier for beginners to get started. It provides a more opinionated setup out of the box.

Neovim, on the other hand, is a fork of Vim that focuses on extensibility and improved performance. It offers more flexibility and customization options but requires more effort to set up initially.

Both projects have their strengths, and the choice between them depends on the user's preferences and needs. SpaceVim is better for those who want a ready-to-use setup, while Neovim is ideal for users who prefer to build their own custom environment.

38,023

The official Vim repository

Pros of vim

  • Lightweight and fast, with minimal resource usage
  • Highly customizable through native configuration and scripting
  • Extensive documentation and large community support

Cons of vim

  • Steeper learning curve for beginners
  • Less out-of-the-box functionality compared to SpaceVim
  • Requires more manual configuration for advanced features

Code comparison

SpaceVim configuration example:

let g:spacevim_enable_guicolors = 1
let g:spacevim_colorscheme = 'gruvbox'
let g:spacevim_enable_tabline_filetype_icon = 1
let g:spacevim_enable_statusline_mode = 1

vim configuration example:

set termguicolors
colorscheme gruvbox
set showtabline=2
set laststatus=2

SpaceVim provides a more streamlined configuration process with predefined options, while vim requires more manual setup but offers greater flexibility. SpaceVim aims to create a unified, IDE-like experience out of the box, whereas vim focuses on providing a highly customizable foundation that users can build upon according to their preferences.

Both projects have their merits, with SpaceVim offering a more accessible entry point for newcomers and vim providing a lightweight, extensible editor for those who prefer a more hands-on approach to configuration.

18,785

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

Pros of LunarVim

  • More modern and actively maintained, with frequent updates
  • Built on Neovim, offering better performance and newer features
  • Extensive plugin ecosystem with easy customization options

Cons of LunarVim

  • Steeper learning curve for beginners
  • Requires Neovim, which may not be available on all systems
  • Some users report occasional stability issues with certain plugins

Code Comparison

SpaceVim configuration example:

let g:spacevim_enable_debug = 1
let g:spacevim_realtime_leader_guide = 1
let g:spacevim_enable_tabline_filetype_icon = 1
let g:spacevim_enable_statusline_mode = 0

LunarVim configuration example:

lvim.log.level = "warn"
lvim.format_on_save = true
lvim.colorscheme = "lunar"
lvim.leader = "space"
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"

Both SpaceVim and LunarVim aim to provide a comprehensive, pre-configured Vim/Neovim experience. SpaceVim offers a more traditional Vim-like setup, while LunarVim leverages Neovim's capabilities for a modern editing environment. LunarVim's Lua-based configuration may be more appealing to users comfortable with programming, while SpaceVim's VimScript approach might be more familiar to long-time Vim users.

26,050

Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.

Pros of NvChad

  • Faster startup time and overall performance
  • More modern and aesthetically pleasing user interface
  • Easier configuration with Lua-based setup

Cons of NvChad

  • Smaller community and fewer plugins compared to SpaceVim
  • Less comprehensive documentation and tutorials
  • Steeper learning curve for users new to Neovim

Code Comparison

SpaceVim configuration (init.toml):

[options]
    colorscheme = "gruvbox"
    enable_guicolors = true
    statusline_separator = "arrow"
    enable_tabline_filetype_icon = true

NvChad configuration (init.lua):

local opt = vim.opt
opt.termguicolors = true
opt.statusline = "%!v:lua.require'nvchad_ui.statusline'.run()"
opt.tabline = "%!v:lua.require'nvchad_ui.tabline'.run()"

Both SpaceVim and NvChad aim to provide pre-configured Vim/Neovim environments, but they differ in their approach and target audience. SpaceVim offers a more comprehensive and feature-rich setup out of the box, while NvChad focuses on speed and modern aesthetics. SpaceVim uses TOML for configuration, whereas NvChad leverages Lua for a more flexible and powerful setup. NvChad is specifically designed for Neovim, while SpaceVim supports both Vim and Neovim. Ultimately, the choice between the two depends on the user's preferences, experience level, and desired features.

20,301

Neovim config for the lazy

Pros of LazyVim

  • Faster startup time due to lazy-loading plugins
  • More modern and actively maintained codebase
  • Easier customization through modular configuration files

Cons of LazyVim

  • Smaller community and fewer pre-configured options
  • Steeper learning curve for Neovim beginners
  • Less comprehensive documentation compared to SpaceVim

Code Comparison

SpaceVim configuration:

let g:spacevim_enable_debug = 1
let g:spacevim_realtime_leader_guide = 1
let g:spacevim_enable_tabline_filetype_icon = 1
let g:spacevim_enable_statusline_mode = 0

LazyVim configuration:

return {
  -- Configure LazyVim to load gruvbox
  colorscheme = "gruvbox",
  -- Add plugins
  plugins = {
    { "folke/which-key.nvim", opts = {} },
    { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
  },
}

Both SpaceVim and LazyVim aim to provide a comprehensive Neovim configuration out of the box. SpaceVim offers a more traditional approach with a larger set of pre-configured options, while LazyVim focuses on performance and modularity. LazyVim's lazy-loading approach results in faster startup times, but it may require more manual configuration for specific use cases. SpaceVim's extensive documentation and larger community make it more accessible for beginners, while LazyVim's modern codebase and easier customization appeal to more experienced users.

13,290

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

Pros of AstroNvim

  • More modern and actively maintained
  • Better out-of-the-box performance
  • Easier customization through Lua configuration

Cons of AstroNvim

  • Smaller community and ecosystem compared to SpaceVim
  • Less comprehensive documentation
  • Steeper learning curve for Lua-based configuration

Code Comparison

SpaceVim configuration (init.toml):

[options]
    colorscheme = "gruvbox"
    enable_guicolors = true
    statusline_separator = "arrow"
    enable_tabline_filetype_icon = true

AstroNvim configuration (user/init.lua):

return {
  colorscheme = "gruvbox",
  options = {
    opt = {
      guicursor = "",
      relativenumber = true,
    },
  },
}

Both projects aim to provide a comprehensive Neovim configuration, but AstroNvim focuses on modern Lua-based setup, while SpaceVim offers a more traditional Vim-like experience with broader language support. AstroNvim generally provides better performance and easier customization, whereas SpaceVim benefits from a larger community and more extensive documentation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

SpaceVim

Quick Start Guide | Chat | Documentation | Layers

build Codecov coverage Release GPLv3 License

work-flow

SpaceVim is a modular configuration of Vim and Neovim. It's inspired by spacemacs. It manages collections of plugins in layers, which help to collect related packages together to provide features. This approach helps keep the configuration organized and reduces overhead for the user by keeping them from having to think about what packages to install.

Features

  • Modularization: plugins and functions are organized in layers.
  • Compatible api: a series of compatible APIs for Vim/Neovim.
  • Great documentation: online documentation and :h SpaceVim.
  • Better experience: rewrite core plugins using lua
  • Beautiful UI: you'll love the awesome UI and its useful features.
  • Mnemonic key bindings: key binding guide will be displayed automatically
  • Fast boot time: Lazy-load 90% of plugins with dein.vim
  • Lower the risk of RSI: by heavily using the space bar instead of modifiers.
  • Consistent experience: consistent experience between terminal and gui

Project Layout

├─ .ci/                           build automation
├─ .github/                       issue/PR templates
├─ .SpaceVim.d/                   project specific configuration
├─ after/                         overrule or add to the distributed defaults
├─ autoload/SpaceVim.vim          SpaceVim core file
├─ autoload/SpaceVim/api/         Public APIs
├─ autoload/SpaceVim/layers/      available layers
├─ autoload/SpaceVim/plugins/     builtin plugins
├─ autoload/SpaceVim/mapping/     mapping guide
├─ colors/                        default colorscheme
├─ docker/                        docker image generator
├─ bundle/                        bundle plugins
├─ lua/spacevim/plugin            builtin plugins(lua)
├─ doc/                           help(cn/en)
├─ docs/                          website(cn/en)
├─ wiki/                          wiki(cn/en)
├─ bin/                           executable
└─ test/                          tests

Contribute

This project wouldn't exist without all the people who contributed, We are thankful for any contributions from the community.

Credits