<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga ');
ga('create', 'UA-89745542-1', 'auto');
ga('send', 'pageview');
</script>
# SpaceVim
[![Build Status](https://travis-ci.org/SpaceVim/SpaceVim.svg?branch=dev)](https://travis-ci.org/SpaceVim/SpaceVim )
[![Doc](https://img.shields.io/badge/doc-%3Ah%20SpaceVim-orange.svg?style=flat-square)](doc/SpaceVim.txt )
[![QQ](https://img.shields.io/badge/QQ群-121056965-blue.svg)](https://jq.qq.com/?_wv=1027&k=43DB6SG )
[![Gitter](https://badges.gitter.im/SpaceVim/SpaceVim.svg)](https://gitter.im/SpaceVim/SpaceVim?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge )
SpaceVim is a distribution, a bundle of custom settings and plugins, for Vim. It
got inspired by spacemacs .
For learning about Vim in general, read
vim-galore .
curl -sLf https://raw.githubusercontent.com/SpaceVim/SpaceVim/dev/install.sh | bash
before use SpaceVim, you should install the plugin by call dein#install()
installation of neovim/vim with python support:
neovim installation
Building Vim from source
SpaceVim will load custom configuration from ~/.local.vim
and .local.vim
in current directory.
here is an example:
" here are some basic customizations, please refer to the top of the vimrc file for all possible options
let g: spacevim_default_indent = 3
let g: spacevim_max_column = 80
let g: spacevim_colorscheme = ' my_awesome_colorscheme'
let g: spacevim_plugin_manager = ' dein' " neobundle or dein or vim-plug
" change the default directory where all miscellaneous persistent files go
let g: spacevim_cache_dir = " /some/place/else"
" by default, language specific plugins are not loaded. this can be changed with the following:
let g: spacevim_plugin_groups_exclude = [' ruby' , ' python' ]
" if there are groups you want always loaded, you can use this:
let g: spacevim_plugin_groups_include = [' go' ]
" alternatively, you can set this variable to load exactly what you want
let g: spacevim_plugin_groups = [' core' , ' web' ]
" if there is a particular plugin you don't like, you can define this variable to disable them entirely
let g: spacevim_disabled_plugins= [' vim-foo' , ' vim-bar' ]
" anything defined here are simply overrides
set wildignore += \* /node_modules/ \*
set guifont = Wingdings: h10
List all the plugins has been installed, fuzzy find what you want,
default action is open the github website of current plugin. default key is <leader>lp
List all the mappings and description: f<space>
List all the starred repos in github.com, fuzzy find and open the website of the repo. default key is <leader>ls
outline + filemanager + checker
java
viml
rust
php
c/c++
js
Package management with caching enabled and lazy loading
Project-aware tabs and label
Vimfiler as file-manager + SSH connections
Go completion via vim-go and gocode
Javascript completion via Tern
PHP completion, indent, folds, syntax
Python jedi completion, pep8 convention
Languages: Ansible, css3, csv, json, less, markdown, mustache
Helpers: Undo tree, bookmarks, git, tmux navigation,
hex editor, sessions, and much more.
Note that 90% of the plugins are [lazy-loaded] .
[lazy-loaded]: ./config/plugins.vim
Name
Description
html5
HTML5 omnicomplete and syntax
mustache
Mustache and handlebars syntax
markdown
Markdown syntax highlighting
ansible-yaml
Additional support for Ansible
jinja
Jinja support in vim
less
Syntax for LESS
css3-syntax
CSS3 syntax support to vim's built-in syntax/css.vim
csv
Handling column separated data
pep8-indent
Nicer Python indentation
logstash
Highlights logstash configuration files
tmux
vim plugin for tmux.conf
json
Better JSON support
toml
Syntax for TOML
i3
i3 window manager config syntax
Dockerfile
syntax and snippets for Dockerfile
go
Go development
jedi-vim
Python jedi autocompletion library
ruby
Ruby configuration files
portfile
Macports portfile configuration files
javascript
Enhanced Javascript syntax
javascript-indent
Javascript indent script
tern
Provides Tern-based JavaScript editing support
php
Up-to-date PHP syntax file
phpfold
PHP folding
phpcomplete
Improved PHP omnicompletion
phpindent
PHP official indenting
phpspec
PhpSpec integration
Name
Description
goyo
Distraction-free writing
limelight
Hyperfocus-writing
matchit
Intelligent pair matching
indentline
Display vertical indention lines
choosewin
Choose window to use, like tmux's 'display-pane'
Name
Description
delimitmate
Insert mode auto-completion for quotes, parens, brackets
echodoc
Print objects' documentation in echo area
deoplete
Neovim: Dark powered asynchronous completion framework
neocomplete
Next generation completion framework
neosnippet
Contains neocomplete snippets source
Key
Mode
Action
<leader>
+y
Normal/visual
Copy selection to X11 clipboard ("+y)
<leader>
+p
Normal/visual
Paste selection from X11 clipboard ("+p)
Ctrl
+f
Normal
Smart page forward (C-f/C-d)
Ctrl
+b
Normal
Smart page backwards (C-b/C-u)
Ctrl
+e
Normal
Smart scroll down (3C-e/j)
Ctrl
+y
Normal
Smart scroll up (3C-y/k)
Ctrl
+q
Normal
Ctrl
+w
Ctrl
+x
Normal
Switch buffer and placement
Up,Down
Normal
Smart up and down
}
Normal
After paragraph motion go to first non-blank char (}^)
<
Visual/Normal
Indent to left and re-select
>
Visual/Normal
Indent to right and re-select
Tab
Visual
Indent to right and re-select
Shift
+Tab
Visual
Indent to left and re-select
gp
Normal
Select last paste
Q
/gQ
Normal
Disable EX-mode ()
Ctrl
+a
Command
Navigation in command line
Ctrl
+b
Command
Move cursor backward in command line
Ctrl
+f
Command
Move cursor forward in command line
Key
Mode
Action
<leader>
+cd
Normal
Switch to the root directory(vim-rooter)
<leader>
+w
Normal/visual
Write (:w)
Ctrl
+s
All
Write (:w)
W!!
Command
Write as root
Key
Mode
Action
F2
All
Toggle tagbar
F3
All
Toggle Vimfiler
<leader>
+ts
Normal
Toggle spell-checker (:setlocal spell!)
<leader>
+tn
Normal
Toggle line numbers (:setlocal nonumber!)
<leader>
+tl
Normal
Toggle hidden characters (:setlocal nolist!)
<leader>
+th
Normal
Toggle highlighted search (:set hlsearch!)
<leader>
+tw
Normal
Toggle wrap (:setlocal wrap! breakindent!)
g0
Normal
Go to first tab (:tabfirst)
g$
Normal
Go to last tab (:tablast)
gr
Normal
Go to preview tab (:tabprevious)
Ctrl
+<Dow>
Normal
Move to split below (j)
Ctrl
+<Up>
Normal
Move to upper split (k)
Ctrl
+<Left>
Normal
Move to left split (h)
Ctrl
+<Right>
Normal
Move to right split (l)
*
Visual
Search selection forwards
#
Visual
Search selection backwards
,
+Space
Normal
Remove all spaces at EOL
Ctrl
+r
Visual
Replace selection
<leader>
+lj
Normal
Next on location list
<leader>
+lk
Normal
Previous on location list
<leader>
+S
Normal/visual
Source selection
Key
Mode
Action
q
Normal
Smart buffer close
s
+p
Normal
Split nicely
s
+v
Normal
:split
s
+g
Normal
:vsplit
s
+t
Normal
Open new tab (:tabnew)
s
+o
Normal
Close other windows (:only)
s
+x
Normal
Remove buffer, leave blank window
s
+q
Normal
Closes current buffer (:close)
s
+Q
Normal
Removes current buffer (:bdelete)
Tab
Normal
Next window or tab
Shift
+Tab
Normal
Previous window or tab
<leader>
+sv
Normal
Split with previous buffer
<leader>
+sg
Normal
Vertical split with previous buffer
Key
Mode
Action
;
+r
Normal
Resumes Unite window
;
+f
Normal
Opens Unite file recursive search
;
+i
Normal
Opens Unite git file search
;
+g
Normal
Opens Unite grep with ag (the_silver_searcher)
;
+u
Normal
Opens Unite source
;
+t
Normal
Opens Unite tag
;
+T
Normal
Opens Unite tag/include
;
+l
Normal
Opens Unite location list
;
+q
Normal
Opens Unite quick fix
;
+e
Normal
Opens Unite register
;
+j
Normal
Opens Unite jump, change
;
+h
Normal
Opens Unite history/yank
;
+s
Normal
Opens Unite session
;
+o
Normal
Opens Unite outline
;
+ma
Normal
Opens Unite mapping
;
+me
Normal
Opens Unite output messages
<leader>
+b
Normal
Opens Unite buffers, mru, bookmark
<leader>
+ta
Normal
Opens Unite tab
<leader>
+gf
Normal
Opens Unite file with word at cursor
<leader>
+gt
Normal/visual
Opens Unite tag with word at cursor
<leader>
+gg
Visual
Opens Unite navigate with word at cursor
Within Unite buffers
Ctrl
+h/k/l/r
Normal
Un-map
Ctrl
+r
Normal
Redraw
Ctrl
+j
Insert
Select next line
Ctrl
+k
Insert
Select previous line
'
Normal
Toggle mark current candidate, up
e
Normal
Run default action
Ctrl
+v
Normal
Open in a split
Ctrl
+s
Normal
Open in a vertical split
Ctrl
+t
Normal
Open in a new tab
Tab
Normal
Ctrl
+w
+w
Escape
Normal
Exit unite
jj
Insert
Leave Insert mode
r
Normal
Replace ('search' profile) or rename
Tab
Insert
Unite autocompletion
Ctrl
+z
Normal/insert
Toggle transpose window
Ctrl
+w
Insert
Delete backward path
Key
Mode
Action
;
+e
Normal
Toggle file explorer
;
+a
Normal
Toggle file explorer on current file
Within VimFiler buffers
Ctrl
+j
Normal
Un-map
Ctrl
+l
Normal
Un-map
E
Normal
Un-map
sv
Normal
Split edit
sg
Normal
Vertical split edit
p
Normal
Preview
i
Normal
Switch to directory history
Ctrl
+r
Normal
Redraw
Ctrl
+q
Normal
Quick look
Key
Mode
Action
Enter
Insert
Smart snippet expansion
Ctrl
+space
Insert
Autocomplete with Unite
Tab
Insert/select
Smart tab movement or completion
Ctrl
+j/k/f/b
Insert
Movement in popup
Ctrl
+g
Insert
Undo completion
Ctrl
+l
Insert
Complete common string
Ctrl
+o
Insert
Expand snippet
Ctrl
+y
Insert
Close pop-up
Ctrl
+e
Insert
Close pop-up
Ctrl
+l
Insert
Complete common string
Ctrl
+d
Insert
Scroll down
Ctrl
+u
Insert
Scroll up
Plugin: TinyComment
Key
Mode
Action
<leader>
+v
Normal/visual
Toggle single-line comments
<leader>
+V
Normal/visual
Toggle comment block
Plugin: Goyo and Limelight
Key
Mode
Action
<leader>
+G
Normal
Toggle distraction-free writing
Key
Mode
Action
-
Normal
Choose a window to edit
<leader>
+-
Normal
Switch editing window with selected
Key
Mode
Action
m
+a
Normal
Show list of all bookmarks
m
+m
Normal
Toggle bookmark in current line
m
+n
Normal
Jump to next bookmark
m
+p
Normal
Jump to previous bookmark
m
+i
Normal
Annotate bookmark
Key
Mode
Action
<leader>
+gs
Normal
Git status
<leader>
+gd
Normal
Git diff
<leader>
+gc
Normal
Git commit
<leader>
+gb
Normal
Git blame
<leader>
+gB
Normal
Open in browser
<leader>
+gp
Normal
Git push
Key
Mode
Action
<leader>
+hj
Normal
Jump to next hunk
<leader>
+hk
Normal
Jump to previous hunk
<leader>
+hs
Normal
Stage hunk
<leader>
+hr
Normal
Revert hunk
<leader>
+hp
Normal
Preview hunk
Key
Mode
Action
<leader>
+gu
Normal
Open undo tree
<leader>
+i
Normal
Toggle indentation lines
<leader>
+j
Normal
Start smalls
<leader>
+r
Normal
Quickrun
<leader>
+?
Normal
Dictionary
<leader>
+W
Normal
Wiki
<leader>
+K
Normal
Thesaurus