SpaceVim
Like spacemacs, but for vim.
Features
- Neovim-centric
- Modular configuration
- Lazy-load 90% of plugins withdein.vim
- Robust, yet light weight
- Unite centric work-flow
- Extensive Neocomplete setup
- Central location for tags
- Lightweight simple status/tabline
- Premium color-schemes
Structure
- config/ - Configuration
- plugins/ - Plugin configurations
- mappings.vim - Key mappings
- autocmds.vim - autocmd group
- general.vim - General configuration
- init.vim - runtimepath initialization
- neovim.vim - Neovim specific setup
- plugins.vim - Plugin bundles
- commands.vim - Commands
- functions.vim - Functions
- main.vim - Main config
</li>
- ftplugin/ - Language specific custom settings
- snippets/ - Code snippets
- filetype.vim - Custom filetype detection
- init.vim - Sources config/main.vim
- vimrc - Sources config/main.vim
</ul>
Installl
mv ~/.vimrc ~/.vimrc_bak
mv ~/.vim ~/.vim_bak
git clone https://github.com/SpaceVim/SpaceVim.git ~/.vim
git clone https://github.com/SpaceVim/SpaceVim.git ~/.config/nvim
Modular configuration
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</pre>
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 .
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
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, 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 |
Unite
Operators & Text Objects
Custom Key bindings
| 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 |
File Operations
| 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 |
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 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 |
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 |
| ; + 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 |
Plugin: VimFiler
| 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 |
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 |
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 |
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> + gB |
Normal |
Open in browser |
| <leader> + gp |
Normal |
Git push |
Plugin: GitGutter
| 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 |
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 |
Enjoy!
Credits & Thanks
- vimdoc generate doc file for SpaceVim
- Rafael Bodill and his vim-config
- Bailey Ling and his dotvim
本文由用戶
flml4039 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!