All Projects → liuchengxu → Space Vim

liuchengxu / Space Vim

Licence: mit
🍀 Lean & mean spacemacs-ish Vim distribution

Programming Languages

Vim Script
2826 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Batchfile
5799 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Space Vim

Spacevim
A community-driven modular vim/neovim distribution - The ultimate vimrc
Stars: ✭ 17,558 (+530.45%)
Mutual labels:  neovim, vimrc, spacemacs, vim-configuration, vim-distribution, space-vim
Dotfiles
My dotfiles for Archlinux and Windows
Stars: ✭ 1,419 (-49.05%)
Mutual labels:  neovim, vimrc, spacemacs, space-vim
Vim Bootstrap
Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.
Stars: ✭ 1,870 (-32.85%)
Mutual labels:  neovim, vimrc, vim-configuration, vimrc-configuration
neovim
🌟 Cool & Modularized vim configurations to work like an IDE
Stars: ✭ 17 (-99.39%)
Mutual labels:  vimrc, neovim, vim-configuration
vim
📝 minimalistic vimrc based on KISS principle @vim
Stars: ✭ 46 (-98.35%)
Mutual labels:  vimrc, neovim, vim-configuration
cosmos-nvim
A must-have configuration for Spacemacs users after defecting to Vim
Stars: ✭ 62 (-97.77%)
Mutual labels:  vimrc, neovim, spacemacs
Vimrc
📝 Vim Configuration for nerds with vim-plug
Stars: ✭ 33 (-98.82%)
Mutual labels:  neovim, vimrc, vim-configuration
nvimrc
vimrc for neovim written in lua
Stars: ✭ 99 (-96.45%)
Mutual labels:  vimrc, neovim, vim-configuration
Dotfiles
Get ready for dotfiles. Contains i3, i3blocks, rofi, dunst, picom, vim, tmux, and zsh.
Stars: ✭ 985 (-64.63%)
Mutual labels:  neovim, vimrc
Vim.ana
The portable Vim IDE with all the trimmings, one-click installable on any standard box.
Stars: ✭ 37 (-98.67%)
Mutual labels:  neovim, vimrc
Learn Vim
无废话极简版Vim学习笔记!文章按主题分拆为多个章节,并尽量控制每节的信息量;通过文字色彩和字体,将命令、快捷键突出显示;在每节结尾,提供一个命令列表,以便回顾文中介绍的重要命令。如果这些文章能对喜欢Vim的朋友有所益处,我将不胜荣幸。
Stars: ✭ 83 (-97.02%)
Mutual labels:  vimrc, vim-configuration
Vim For Coding
vim-for-coding
Stars: ✭ 110 (-96.05%)
Mutual labels:  vimrc, vim-configuration
Vim Clap
👏 Modern performant fuzzy picker for Vim and NeoVim
Stars: ✭ 1,802 (-35.3%)
Mutual labels:  neovim, space-vim
Vime
vime, an easy and structural config for (neo)vim users
Stars: ✭ 136 (-95.12%)
Mutual labels:  neovim, vimrc
Ale Sensible
Pretty, responsive and smooth defaults for a sane ALE, gets you started in 30 seconds
Stars: ✭ 30 (-98.92%)
Mutual labels:  neovim, vimrc
Dotfiles
dotfiles managed by GNU Stow
Stars: ✭ 52 (-98.13%)
Mutual labels:  vimrc, spacemacs
Thinkvim
Vim configuration in the 21st century
Stars: ✭ 832 (-70.13%)
Mutual labels:  neovim, vimrc
Nvim
The Ultimate NeoVim Config for Colemak Users
Stars: ✭ 754 (-72.93%)
Mutual labels:  neovim, vimrc
Alacritty Colorscheme
Change colorscheme of alacritty with ease.
Stars: ✭ 184 (-93.39%)
Mutual labels:  neovim, vimrc
Nvcode
An IDE layer for Neovim with sane defaults. Completely free and community driven.
Stars: ✭ 6,714 (+141.08%)
Mutual labels:  neovim, vimrc

badge license CI


space-vim

Table of Contents

Introduction

space-vim is a vim distribution for vim plugins and resources, compatible with Vim and NeoVim.

It is inspired by spacemacs and mimics spacemacs in a high level, especially in the whole architecture, key bindings and GUI. if have ever tried spacemacs, you will find space-vim is very similar to it in user experience.

Elegance here means pleasing, graceful as well as simple. If you are unfamiliar with spacemacs, you can visit spacemacs.org for more about the principle behind that, which is also what space-vim seeks.

The distribution is completely customizable using .spacevim, which is equivalent to .spacemacs in spacemacs.

screenshot (Terminal vim with space-vim-dark)

>> More screenshots

Features

  • Beautiful interface: I wrote a dark only vim colorscheme space-vim-dark based on the dark version of spacemacs-theme previously. Now we have a new option: space-vim-theme, which is the successor of space-vim-dark that supports both dark and light background!

  • Mnemonic key bindings: commands have mnemonic prefixes like SPC b for all the buffer commands, this feature is mainly powered by vim-which-key. Furthermore, lots of basic key bindings are provided by vim-better-default. For different language layers, <LocalLeader>, , as default in space-vim, can be seen as the major-mode prefix in spacemacs.

  • Lean and mean: no nonsense wrappers, free from being bloated.

For whom?

  • the novice vim users
  • the vimmers who pursuit a beautiful appearance
  • the users using both vim and spacemacs

Have a look at the Introduction in wiki as well.

If you have been a vimmer for quite a while, just pick out the part you are interested in. space-vim is well-organized due to the layers concept, you can easily find what you want. Since some guys are interested in the statusline part of space-vim, this section has been extracted as eleline.vim.

Install

Prerequisites

Make sure you have installed:

  • git
  • Vim or NeoVim

The most recent Vim(NeoVim) version is recommended, for space-vim has been specifically optimized for Vim8 and NeoVim with respect to the startup time.

chocolatey is an easy way to install software on Windows, tools like fzf, rg, ag are necessary to get you a full-featured space-vim.

When layers enabled at the first time, you need to run :PlugInstall to install relevant plugins.

Linux and macOS

one-line installer

$ bash <(curl -fsSL https://raw.githubusercontent.com/liuchengxu/space-vim/master/install.sh)

Makefile

$ git clone https://github.com/liuchengxu/space-vim.git /path/to/space-vim
$ cd /path/to/space-vim
$ make vim     # install space-vim for Vim
$ make neovim  # install space-vim for NeoVim

Windows

The easist way is to download install.cmd and run it as administrator, or install space-vim manually.

windows

Manual

Given git and Vim/NeoVim have been installed already:

  1. Clone space-vim:

    /path/to/space-vim may be ~/.vim or ~/.config/nvіm if you so desire.

    $ git clone https://github.com/liuchengxu/space-vim.git /path/to/space-vim
  2. Install vim-plug, refer to vim-plug installation section for more information:

    # For Vim
    $ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
        https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
        
    # For NeoVim
    sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
           https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
  3. Create the symlinks and install plugins:

    Linux and macOS

    # For Vim
    $ ln -s /path/to/space-vim/init.vim ~/.vimrc
    $ cp /path/to/space-vim/init.spacevim ~/.spacevim
    $ vim -es +'PlugInstall' +qall
    
    # For NeoVim
    $ ln -s /path/to/space-vim/init.vim ~/.config/nvim/init.vim
    $ cp /path/to/space-vim/init.spacevim ~/.spacevim
    $ nvim +'PlugInstall' +qall

Customize

You can use .spacevim in your home directory to customize space-vim, where you can enable the existing layers, add your extra plugins and private configurations.

If .spacevim does not exist, vanilla vim will be loaded! Refer to init.spacevim as an example.

Presetting

" Comment the following line if you don't want Vim and NeoVim to share the
" same plugin download directory.
let g:spacevim_plug_home = '~/.vim/plugged'

" Uncomment the following line to override the leader key. The default value is space key "<\Space>".
" let g:spacevim_leader = "<\Space>"

" Uncomment the following line to override the local leader key. The default value is comma ','.
" let g:spacevim_localleader = ','

" Enable the existing layers in space-vim
" Refer to https://github.com/liuchengxu/space-vim/blob/master/layers/LAYERS.md for all available layers.
let g:spacevim_layers = [
      \ 'fzf', 'better-defaults', 'which-key',
      \ ]

" Uncomment the following line if your terminal(-emulator) supports true colors.
" let g:spacevim_enable_true_color = 1

" Uncomment the following if you have some nerd font installed.
" let g:spacevim_nerd_fonts = 1

" If you want to have more control over the layer, try using Layer command.
" if g:spacevim.gui
"   Layer 'airline'
" endif

Please refer to LAYERS.md to take a look at the whole shipped layers.

Basically, g:spacevim_layers almost takes the place of Layer command. As far as I known, most people never use the option of Layer command, e.g., exclude, so g:spacevim_layers could save a lengthy Layer list, requiring less ceremony. Nevertheless, Layer command is still avaiable for some advanced uses.

UserInit()

" Manage your own plugins.
" Refer to https://github.com/junegunn/vim-plug for more detials.
function! UserInit()

  " Add your own plugin via Plug command.
  Plug 'junegunn/seoul256.vim'

endfunction

UserConfig()

" Override the default settings as well as adding extras
function! UserConfig()

  " Override the default settings.
  " Uncomment the following line to disable relative number.
  " set norelativenumber

  " Adding extras.
  " Uncomment the following line If you have installed the powerline fonts.
  " It is good for airline layer.
  " let g:airline_powerline_fonts = 1

endfunction

If have a heavy customized configuration, you can organize them in private directory with packages.vim and config.vim too, which will be loaded on startup. The private directory can be considered as either a single layer, i.e., in which you can put packages.vim and config.vim, or a set of multiple layers.

How to use

First of all, I recommend you to look through the existing key bindings via SPC ?. What's more, you definitely can not miss reading the README of better-defaults layer, which is of great importance for you to get started quickly.

For detailed instruction, please refer to the README under the certain layer enabled, or you can see config.vim and packages.vim directly.

If the README is not elaborate, sorry for that, space-vim now is in the early stages and a ton of stuff are waiting to be done.

Bootstrap

The modular design is originally from spacemacs. The implementation of logic in space-vim is similar to vim-plug.

If you want to know more about the bootstrap of space-vim, please see bootstrap in wiki.

Commands

Command Description
LayerStatus Check the status of layers
LayerCache Cache the information of layers in info.vim

Tips

For the sake of a better user experience, some extra settings should be done.

Enable GUI color in terminal vim

  • :echo has('termguicolors'), if 1, then your vim supports true colors.
  • See if your terminal-(emulator) supports true colors, refer to the gist TrueColour.md.

If these two requirements are satisfied, you could enable true color by uncommenting the line:

" Uncomment the following line if your terminal(-emulator) supports true colors.
let g:spacevim_enable_true_color = 1

Font

Some fantastic fonts: see wiki tips: programming-fonts.

GUI

For instance, install Iosevka first and use it:

let &guifont = 'Iosevka:h16'
Terminal

iterm2-font-setting

First, install the Source Code Pro or Powerline font, which is important for airline layer.

Second, since console Vim uses whatever font the console/terminal is using, you'll have to change the font setting of your terminal.

Update

Run make update:

$ cd path/to/space-vim
$ make update

Alternatively, you can manually perform the following steps. If anything has changed with the structure of the configuration, you will have to create the appropriate symlinks.

$ cd path/to/space-vim
$ git pull origin master

Contributions

If you encounter any problem or have any suggestions, please open an issue or send a PR.

Space-vim is still in beta. If you are interested, contributions are highly welcome.

Acknowledgements

I would like to thank the many people who have helped and contributed to this project. What's more, space-vim would never have become what it is now, without the help of these projects!

Articles

Contributors

This project exists thanks to all the people who contribute.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].