Like spacemacs, but for vim.
Like spacemacs, but for vim.
curl spacevim.org/install.sh -sSf | sh
runtimepath
initializationconfig/main.vim
config/main.vim
sh
mv ~/.vimrc ~/.vimrc_bak
mv ~/.vim ~/.vim_bak
git clone https://github.com/SpaceVim/SpaceVim.git ~/.vim
sh
git clone https://github.com/SpaceVim/SpaceVim.git ~/.config/nvim
SpaceVim will load custom configuration from ~/.local.vim
and .local.vim
in current directory.
here is an example: ```viml “ 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
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 |
---|---|
[dein.vim] | Dark powered Vim/Neovim plugin manager |
[vimproc] | Interactive command execution |
[colorschemes] | Awesome color-schemes |
[file-line] | Allow opening a file in a given line |
[neomru] | MRU source for Unite |
[cursorword] | Underlines word under cursor |
[gitbranch] | Lightweight git branch detection |
[gitgutter] | Shows git diffs in the gutter |
[tinyline] | Tiny great looking statusline |
[tagabana] | Central location for all tags |
[bookmarks] | Bookmarks, works independently from vim marks |
[tmux-navigator] | Seamless navigation between tmux panes and vim splits |
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 ————– | ———————- vimfiler | Powerful file explorer tinycomment | Robust but light-weight commenting 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
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
Name | Description ————– | ———————- unite | Unite and create user interfaces unite-colorscheme | Browse colorschemes unite-filetype | Select file type unite-history | Browse history of command/search unite-build | Build with Unite interface unite-outline | File “outline” source for unite unite-tag | Tags source for Unite unite-quickfix | Quickfix source for Unite neossh | SSH interface for plugins unite-pull-request | GitHub pull-request source for Unite junkfile | Create temporary files for memo and testing unite-issue | Issue manager for JIRA and GitHub
Name | Description ————– | ———————- operator-user | Define your own operator easily operator-replace | Operator to replace text with register content operator-surround | Operator to enclose text objects textobj-user | Create your own text objects textobj-multiblock | Handle multiple brackets objects
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 ( |
Ctrl +<Up> |
Normal | Move to upper split ( |
Ctrl +<Left> |
Normal | Move to left split ( |
Ctrl +<Right> |
Normal | Move to right split ( |
* |
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 |
Key | Mode | Action |
---|---|---|
<leader> +v |
Normal/visual | Toggle single-line comments |
<leader> +V |
Normal/visual | Toggle comment block |
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 |
Bailey Ling and his dotvim
[dein.vim]: https://github.com/Shougo/dein.vim [vimproc]: https://github.com/Shougo/vimproc.vim [colorschemes]: https://github.com/rafi/awesome-vim-colorschemes [file-line]: https://github.com/bogado/file-line [neomru]: https://github.com/Shougo/neomru.vim [cursorword]: https://github.com/itchyny/vim-cursorword [gitbranch]: https://github.com/itchyny/vim-gitbranch [gitgutter]: https://github.com/airblade/vim-gitgutter [bookmarks]: https://github.com/MattesGroeger/vim-bookmarks [tmux-navigator]: https://github.com/christoomey/vim-tmux-navigator [tinyline]: https://github.com/rafi/vim-tinyline [tagabana]: https://github.com/rafi/vim-tagabana