Top Related Projects
Vim-fork focused on extensibility and usability
The official Vim repository
🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.
Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.
Neovim config for the lazy
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
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.
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.
🌙 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.
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.
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.
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
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Quick Start Guide | Chat | Documentation | Layers
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
- Hack-SpaceVim by @Gabirel
- SpaceVimTutorial by @everettjf
- 10-minutes-to-SpaceVim by @Jackiexiao
- A First Look At SpaceVim by @DistroTube
- Getting Started With SpaceVim by FOSS King
- vimdoc: Vim help file generator
- spacemacs: A community-driven Emacs distribution
- Authors of all the plugins used in SpaceVim.
Top Related Projects
Vim-fork focused on extensibility and usability
The official Vim repository
🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.
Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.
Neovim config for the lazy
AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot