SpaceVim Documentation
Features
Awesome ui
- outline + filemanager + checker
Language specific mode
c/c++ support
- code completion: autocompletion and fuzzy match.
- syntax check: Asynchronous linting and make framework.
go support
- code completion:
- syntax check:
python support
- code completion:
- syntax check:
Neovim centric - Dark powered mode of SpaceVim.
By default, SpaceVim use these dark powered plugins:
- deoplete.nvim - Dark powered asynchronous completion framework for neovim
- dein.vim - Dark powered Vim/Neovim plugin manager
TODO:
- defx.nvim - Dark powered file explorer
- deoppet.nvim - Dark powered snippet plugin
- denite.nvim - Dark powered asynchronous unite all interfaces for Neovim/Vim8
Modular configuration
Multiple leader mode
Global origin vim leader, default : \
Vim's origin global leader can be used in all modes.
Local origin vim leader, default : ,
Vim's origin local leader can be used in all the mode.
Windows function leader, default : s
Windows function leader can only be used in normal mode.
For the list of mappings see the link
Unite work flow leader, default : f
Unite work flow leader can only be used in normal mode. Unite leader need unite groups.
Unite centric work-flow
-
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
Plugin Highlights
-
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
Non Lazy-Loaded Plugins
Lazy-Loaded Plugins
Language
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 |
Commands
Name |
Description |
vimfiler |
Powerful file explorer |
[NERD Commenter] |
Comment tool - no comment necessary |
vinarise |
Hex editor |
syntastic |
Syntax checking hacks |
gita |
An awesome git handling plugin |
gista |
Manipulate gists in Vim |
undotree |
Ultimate undo history visualizer |
incsearch |
Improved incremental searching |
expand-region |
Visually select increasingly larger regions of text |
open-browser |
Open URI with your favorite browser |
prettyprint |
Pretty-print vim variables |
quickrun |
Run commands quickly |
ref |
Integrated reference viewer |
dictionary |
Dictionary.app interface |
vimwiki |
Personal Wiki for Vim |
thesaurus |
Look up words in an online thesaurus |
Commands
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' |
Completion
Name |
Description |
delimitmate |
Insert mode auto-completion for quotes, parenthesis, 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 |
Unite
Operators & Text Objects
Custom Key bindings
Key |
Mode |
Action |
<leader> +y |
visual |
Copy selection to X11 clipboard ("+y) |
Ctrl +c |
Normal |
Copy full path of current buffer to X11 clipboard |
<leader> +Ctrl +c |
Normal |
Copy github.com url of current buffer to X11 clipboard(if it is a github repo) |
<leader> +Ctrl +l |
Normal/visual |
Copy github.com url of current lines to X11 clipboard(if it is a github repo) |
<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 |
File Operations
Key |
Mode |
Action |
<leader> +cd |
Normal |
Switch to the directory of the open buffer |
<leader> +w |
Normal/visual |
Write (:w) |
Ctrl +s |
Normal/visual/Command |
Write (:w) |
:w!! |
Command |
Write as root (%!sudo tee > /dev/null %) |
Editor UI
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 previous 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 |
Window Management
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 |
Plugin: Unite
Key |
Mode |
Action |
[unite] |
Normal |
unite leader, default is f , :h g:spacevim_unite_leader |
[unite] +r |
Normal |
Resumes Unite window |
[unite] +f |
Normal |
Opens Unite file recursive search |
[unite] +i |
Normal |
Opens Unite git file search |
[unite] +g |
Normal |
Opens Unite grep with ag (the_silver_searcher) |
[unite] +u |
Normal |
Opens Unite source |
[unite] +t |
Normal |
Opens Unite tag |
[unite] +T |
Normal |
Opens Unite tag/include |
[unite] +l |
Normal |
Opens Unite location list |
[unite] +q |
Normal |
Opens Unite quick fix |
[unite] +e |
Normal |
Opens Unite register |
[unite] +j |
Normal |
Opens Unite jump, change |
[unite] +h |
Normal |
Opens Unite history/yank |
[unite] +s |
Normal |
Opens Unite session |
[unite] +n |
Normal |
Opens Unite session/new |
[unite] +o |
Normal |
Opens Unite outline |
[unite] +c |
Normal |
Opens Unite buffer bookmark file in current directory |
[unite] +b |
Normal |
Opens Unite buffer bookmark file in buffer directory |
[unite] +ma |
Normal |
Opens Unite mapping |
[unite] +<space> |
Normal |
Opens Unite menu:CustomKeyMaps |
[unite] +me |
Normal |
Opens Unite output messages |
<leader> +bl |
Normal |
Opens Unite buffers, mru, bookmark |
<leader> +ta |
Normal |
Opens Unite tab |
<leader> +ugf |
Normal |
Opens Unite file with word at cursor |
<leader> +ugt |
Normal/visual |
Opens Unite tag 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 |
Plugin: VimFiler
Key |
Mode |
Action |
<F3> |
Normal |
Toggle file explorer |
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 |
v |
Normal |
Quick look |
gx |
Normal |
Execute with vimfiler associated |
' |
Normal |
Toggle mark current line |
V |
Normal |
Clear all marks |
Ctrl +r |
Normal |
Redraw |
Plugin: neocomplete
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 |
Key |
Mode |
Action |
<leader> +cc |
Normal/visual |
Comment out the current line or text selected in visual mode. |
<leader> +cn |
Normal/visual |
Same as cc but forces nesting. |
<leader> +cu |
Normal/visual |
Uncomments the selected line(s). |
<leader> +cs |
Normal/visual |
Comments out the selected lines with a pretty block formatted layout. |
<leader> +cy |
Normal/visual |
Same as cc except that the commented line(s) are yanked first. |
Plugin: Goyo and Limelight
Key |
Mode |
Action |
<leader> +G |
Normal |
Toggle distraction-free writing |
Plugin: ChooseWin
Key |
Mode |
Action |
- |
Normal |
Choose a window to edit |
<leader> +- |
Normal |
Switch editing window with selected |
Plugin: Bookmarks
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 |
Plugin: Gita
Key |
Mode |
Action |
<leader> +gs |
Normal |
Git status |
<leader> +gd |
Normal |
Git diff |
<leader> +gc |
Normal |
Git commit |
<leader> +gb |
Normal |
Git blame |
<leader> +gp |
Normal |
Git push |
Plugin: vim-signify
Key |
Mode |
Action |
<leader> +hj / ]c |
Normal |
Jump to next hunk |
<leader> +hk / [c |
Normal |
Jump to previous hunk |
<leader> +hJ / ]C |
Normal |
Jump to last hunk |
<leader> +hK / [C |
Normal |
Jump to first hunk |
Misc Plugins
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 |
Custom configuration
SpaceVim use ~/.SpaceVim.d/init.vim
as default global init file. you can set
SpaceVim-options or config layers in it. SpaceVim also will add ~/.SpaceVim.d/
into runtimepath. so you can write your own vim script in it.
SpaceVim also support local config file for project, the init file is .SpaceVim.d/init.vim
in the root of your project. .SpaceVim.d/
will also be added into runtimepath.
here is an example config file for SpaceVim:
" set the options of SpaceVim
let g:spacevim_colorscheme = 'solarized'
" setting layers, load 'lang#java' layer.
call SpaceVim#layers#load('lang#java')
" add custom plugins.
let g:spacevim_custom_plugins = [
\ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
\ ['wsdjeg/GitHub.vim'],
\ ]
" custom mappings:
nnoremap <c-l> :Ydc<cr>
APIs
SpaceVim provide many public apis, you can use this apis in your plugins. here is the list of all the apis:
nanme |
description |
file |
|
system |
|