diff --git a/docs/README.md b/docs/README.md index 3e5214cbd..7c1f03481 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,44 +1,10 @@ +#### Introduction + [![Build Status](https://travis-ci.org/SpaceVim/SpaceVim.svg?branch=dev)](https://travis-ci.org/SpaceVim/SpaceVim) ![Version 0.1.0-dev](https://img.shields.io/badge/version-0.1.0--dev-yellow.svg?style=flat-square) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE) [![Doc](https://img.shields.io/badge/doc-%3Ah%20SpaceVim-orange.svg?style=flat-square)](doc/SpaceVim.txt) -### Table of Contents -- [Introduction](#introduction) -- [Community](#community) -- [Install](#install) - - [Linux/Mac](#linuxmac) - - [Windows support](#windows-support) -- [File Structure](#file-structure) -- Features - - [Awesome ui](#awesome-ui) - - [Language specific mode](#language-specific-mode) - - [c/c++ support](#cc-support) - - [python support](#python-support) - - [go support](#go-support) - - rust support - - php support - - perl support - - lua support - - [Unite centric work-flow](#unite-centric-work-flow) - - [Neovim centric - Dark powered mode](#neovim-centric---dark-powered-mode-of-spacevim) - - [multiple leader mode](#multiple-leader-mode) - - [Modular configuration](#modular-configuration) - - Lazy-load 90% of plugins with [dein.vim] - - Robust, yet light weight - - Extensive Neocomplete setup - - Central location for tags - - Lightweight simple status/tabline - - Premium color-schemes -- [Custom configuration](#custom-configuration) -- [Support SpaceVim](#support-spacevim) - - [Report bugs](#report-bugs) - - [contribute to SpaceVim](#contribute-to-spacevim) - - Write post about SpaceVim -- [Credits & Thanks](#credits--thanks) - -#### Introduction - ![2017-02-05_1359x721](https://cloud.githubusercontent.com/assets/13142418/22622826/f88881a8-eb80-11e6-880b-b12e0430689a.png) [SpaceVim](https://github.com/SpaceVim/SpaceVim) is a Modular configuration, a bundle of custom settings and plugins for Vim, @@ -54,18 +20,6 @@ For learning about Vim in general, read [vim-galore](https://github.com/mhinz/vi [![Throughput Graph](https://graphs.waffle.io/SpaceVim/SpaceVim/throughput.svg)](https://waffle.io/SpaceVim/SpaceVim/metrics/throughput) -#### Community -Try these Neovim hangouts for any questions, problems or comments. -- Ask - - [issue tracker](https://github.com/SpaceVim/SpaceVim/issues) for issue and feature requests - - vi StackExchange for "how to" & configuration questions - - [![Twitter Follow](https://img.shields.io/twitter/follow/SpaceVim.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/SpaceVim) for hugs & pithy comments -- Chat - - [![Gitter](https://badges.gitter.im/SpaceVim/SpaceVim.svg)](https://gitter.im/SpaceVim/SpaceVim?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) - - [![QQ](https://img.shields.io/badge/QQ群-121056965-blue.svg)](https://jq.qq.com/?_wv=1027&k=43DB6SG) - - [![Facebook](https://img.shields.io/badge/FaceBook-SpaceVim-blue.svg)](https://www.facebook.com/SpaceVim) -- Discuss - #### Install ##### Linux/Mac @@ -123,598 +77,3 @@ git clone https://github.com/SpaceVim/SpaceVim.git AppData\Local\nvim - [vimrc](./vimrc) - Sources `config/main.vim` -#### Features - -##### Awesome ui - -- outline + filemanager + checker - ![2017-02-01_1360x721](https://cloud.githubusercontent.com/assets/13142418/22506638/84705532-e8bc-11e6-8b72-edbdaf08426b.png) - -##### Language specific mode - -###### c/c++ support - -1. code completion: autocompletion and fuzzy match. - ![2017-02-01_1359x720](https://cloud.githubusercontent.com/assets/13142418/22505960/df9068de-e8b8-11e6-943e-d79ceca095f1.png) -2. syntax check: Asynchronous linting and make framework. - ![2017-02-01_1359x722](https://cloud.githubusercontent.com/assets/13142418/22506340/e28b4782-e8ba-11e6-974b-ca29574dcc1f.png) - -###### go support -1. code completion: - ![2017-02-01_1360x721](https://cloud.githubusercontent.com/assets/13142418/22508345/8215c5e4-e8c4-11e6-95ec-f2a6e1e2f4d2.png) -2. syntax check: - ![2017-02-01_1359x720](https://cloud.githubusercontent.com/assets/13142418/22509944/108b6508-e8cb-11e6-8104-6310a29ae796.png) - -###### python support -1. code completion: - ![2017-02-02_1360x724](https://cloud.githubusercontent.com/assets/13142418/22537799/7d1d47fe-e948-11e6-8168-a82e3f688554.png) -2. syntax check: - ![2017-02-02_1358x720](https://cloud.githubusercontent.com/assets/13142418/22537883/36de7b5e-e949-11e6-866f-73c48e8f59aa.png) - -##### Neovim centric - Dark powered mode of SpaceVim. - -By default, SpaceVim use these dark powered plugins: - -1. [deoplete.nvim](https://github.com/Shougo/deoplete.nvim) - Dark powered asynchronous completion framework for neovim -2. [dein.vim](https://github.com/Shougo/dein.vim) - Dark powered Vim/Neovim plugin manager - -TODO: - -1. [defx.nvim](https://github.com/Shougo/defx.nvim) - Dark powered file explorer -2. [deoppet.nvim](https://github.com/Shougo/deoppet.nvim) - Dark powered snippet plugin -3. [denite.nvim](https://github.com/Shougo/denite.nvim) - Dark powered asynchronous unite all interfaces for Neovim/Vim8 - -##### Modular configuration - -- SpaceVim will load custom configuration from `~/.local.vim` and `.local.vim` in current directory. -- SpaceVim support `~/.SpaceVim.d/init.vim` and `./SpaceVim.d/init.vim`. - - -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. -" By default it is ~/.cache/vimfiles. -let g:spacevim_plugin_bundle_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'] -" If you want to add some custom plugins, use these options: -let g:spacevim_custom_plugins = [ - \ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}], - \ ['wsdjeg/GitHub.vim'], - \ ] - -" Anything defined here are simply overrides -set wildignore+=\*/node_modules/\* -set guifont=Wingdings:h10 -``` - -#### 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](#window-management) -##### 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 `lp` - ![2017-01-21_1358x725](https://cloud.githubusercontent.com/assets/13142418/22175019/ce42d902-e027-11e6-89cd-4f44f70a10cd.png) - -- List all the mappings and description: `f` - ![2017-02-01_1359x723](https://cloud.githubusercontent.com/assets/13142418/22507351/24af0d74-e8c0-11e6-985e-4a1404b629ed.png) - -- List all the starred repos in github.com, fuzzy find and open the website of the repo. default key is `ls` - ![2017-02-01_1359x722](https://cloud.githubusercontent.com/assets/13142418/22506915/deb99caa-e8bd-11e6-9b80-316281ddb48c.png) - -#### 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 - -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 - -#### 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 - -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 - -##### Operators & Text Objects - -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 - - -#### Custom Key bindings - -Key | Mode | Action ------ |:----:| ------------------ -``+`y` | visual | Copy selection to X11 clipboard ("+y) -`Ctrl`+`c` | Normal | Copy full path of current buffer to X11 clipboard -``+`Ctrl`+`c` | Normal | Copy github.com url of current buffer to X11 clipboard(if it is a github repo) -``+`Ctrl`+`l` | Normal/visual | Copy github.com url of current lines to X11 clipboard(if it is a github repo) -``+`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 ------ |:----:| ------------------ -``+`cd` | Normal | Switch to the directory of the open buffer -``+`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 -``+`ts` | Normal | Toggle spell-checker (:setlocal spell!) -``+`tn` | Normal | Toggle line numbers (:setlocal nonumber!) -``+`tl` | Normal | Toggle hidden characters (:setlocal nolist!) -``+`th` | Normal | Toggle highlighted search (:set hlsearch!) -``+`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`+`` | Normal | Move to split below (j) -`Ctrl`+`` | Normal | Move to upper split (k) -`Ctrl`+`` | Normal | Move to left split (h) -`Ctrl`+`` | 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 -``+`lj` | Normal | Next on location list -``+`lk` | Normal | Previous on location list -``+`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 -``+`sv` | Normal | Split with previous buffer -``+`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]`+`` | Normal | Opens Unite menu:CustomKeyMaps -`[unite]`+`me` | Normal | Opens Unite output messages -``+`bl` | Normal | Opens Unite buffers, mru, bookmark -``+`ta` | Normal | Opens Unite tab -``+`ugf` | Normal | Opens Unite file with word at cursor -``+`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 ------ |:----:| ------------------ -`` | 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 - -##### Plugin: NERD Commenter - -Key | Mode | Action ------ |:----:| ------------------ -``+`cc` | Normal/visual | Comment out the current line or text selected in visual mode. -``+`cn` | Normal/visual | Same as cc but forces nesting. -``+`cu` | Normal/visual | Uncomments the selected line(s). -``+`cs` | Normal/visual | Comments out the selected lines with a pretty block formatted layout. -``+`cy` | Normal/visual | Same as cc except that the commented line(s) are yanked first. - -##### Plugin: Goyo and Limelight - -Key | Mode | Action ------ |:----:| ------------------ -``+`G` | Normal | Toggle distraction-free writing - -##### Plugin: ChooseWin - -Key | Mode | Action ------ |:----:| ------------------ -`-` | Normal | Choose a window to edit -``+`-` | 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 ------ |:----:| ------------------ -``+`gs` | Normal | Git status -``+`gd` | Normal | Git diff -``+`gc` | Normal | Git commit -``+`gb` | Normal | Git blame -``+`gp` | Normal | Git push - -##### Plugin: vim-signify - -Key | Mode | Action ------ |:----:| ------------------ -``+`hj` / `]c` | Normal | Jump to next hunk -``+`hk` / `[c` | Normal | Jump to previous hunk -``+`hJ` / `]C` | Normal | Jump to last hunk -``+`hK` / `[C` | Normal | Jump to first hunk - -##### Misc Plugins - -Key | Mode | Action ------ |:----:| ------------------ -``+`gu` | Normal | Open undo tree -``+`i` | Normal | Toggle indentation lines -``+`j` | Normal | Start smalls -``+`r` | Normal | Quickrun -``+`?` | Normal | Dictionary -``+`W` | Normal | Wiki -``+`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: - -```viml -" 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 :Ydc -``` - -#### Support SpaceVim - -##### report bugs - -If you get any issues, please open an issue with the ISSUE_TEMPLATE. It is useful for me to debug for this issue. - -##### contribute to SpaceVim - -#### Credits & Thanks -- [![GitHub contributors](https://img.shields.io/github/contributors/SpaceVim/SpaceVim.svg)](https://github.com/SpaceVim/SpaceVim/graphs/contributors) -- [vimdoc](https://github.com/google/vimdoc) generate doc file for SpaceVim -- [Rafael Bodill](https://github.com/rafi) and his vim-config -- [Bailey Ling](https://github.com/bling) 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 - -[html5]: https://github.com/othree/html5.vim -[mustache]: https://github.com/mustache/vim-mustache-handlebars -[markdown]: https://github.com/rcmdnk/vim-markdown -[ansible-yaml]: https://github.com/chase/vim-ansible-yaml -[jinja]: https://github.com/mitsuhiko/vim-jinja -[less]: https://github.com/groenewege/vim-less -[css3-syntax]: https://github.com/hail2u/vim-css3-syntax -[csv]: https://github.com/chrisbra/csv.vim -[pep8-indent]: https://github.com/hynek/vim-python-pep8-indent -[logstash]: https://github.com/robbles/logstash.vim -[tmux]: https://github.com/tmux-plugins/vim-tmux -[json]: https://github.com/elzr/vim-json -[toml]: https://github.com/cespare/vim-toml -[i3]: https://github.com/PotatoesMaster/i3-vim-syntax -[Dockerfile]: https://github.com/ekalinin/Dockerfile.vim -[go]: https://github.com/fatih/vim-go -[jedi-vim]: https://github.com/davidhalter/jedi-vim -[ruby]: https://github.com/vim-ruby/vim-ruby -[portfile]: https://github.com/jstrater/mpvim -[javascript]: https://github.com/jelera/vim-javascript-syntax -[javascript-indent]: https://github.com/jiangmiao/simple-javascript-indenter -[tern]: https://github.com/marijnh/tern_for_vim -[php]: https://github.com/StanAngeloff/php.vim -[phpfold]: https://github.com/rayburgemeestre/phpfolding.vim -[phpcomplete]: https://github.com/shawncplus/phpcomplete.vim -[phpindent]: https://github.com/2072/PHP-Indenting-for-VIm -[phpspec]: https://github.com/rafi/vim-phpspec -[vimfiler]: https://github.com/Shougo/vimfiler.vim -[tinycomment]: https://github.com/rafi/vim-tinycomment -[vinarise]: https://github.com/Shougo/vinarise.vim -[syntastic]: https://github.com/scrooloose/syntastic -[gita]: https://github.com/lambdalisue/vim-gita -[gista]: https://github.com/lambdalisue/vim-gista -[undotree]: https://github.com/mbbill/undotree -[incsearch]: https://github.com/haya14busa/incsearch.vim -[expand-region]: https://github.com/terryma/vim-expand-region -[open-browser]: https://github.com/tyru/open-browser.vim -[prettyprint]: https://github.com/thinca/vim-prettyprint -[quickrun]: https://github.com/thinca/vim-quickrun -[ref]: https://github.com/thinca/vim-ref -[dictionary]: https://github.com/itchyny/dictionary.vim -[vimwiki]: https://github.com/vimwiki/vimwiki -[thesaurus]: https://github.com/beloglazov/vim-online-thesaurus -[goyo]: https://github.com/junegunn/goyo.vim -[limelight]: https://github.com/junegunn/limelight.vim -[matchit]: http://www.vim.org/scripts/script.php?script_id=39 -[indentline]: https://github.com/Yggdroot/indentLine -[choosewin]: https://github.com/t9md/vim-choosewin -[delimitmate]: https://github.com/Raimondi/delimitMate -[echodoc]: https://github.com/Shougo/echodoc.vim -[deoplete]: https://github.com/Shougo/deoplete.nvim -[neocomplete]: https://github.com/Shougo/neocomplete.vim -[neosnippet]: https://github.com/Shougo/neosnippet.vim -[unite]: https://github.com/Shougo/unite.vim -[unite-colorscheme]: https://github.com/ujihisa/unite-colorscheme -[unite-filetype]: https://github.com/osyo-manga/unite-filetype -[unite-history]: https://github.com/thinca/vim-unite-history -[unite-build]: https://github.com/Shougo/unite-build -[unite-outline]: https://github.com/h1mesuke/unite-outline -[unite-tag]: https://github.com/tsukkee/unite-tag -[unite-quickfix]: https://github.com/osyo-manga/unite-quickfix -[neossh]: https://github.com/Shougo/neossh.vim -[unite-pull-request]: https://github.com/joker1007/unite-pull-request -[junkfile]: https://github.com/Shougo/junkfile.vim -[unite-issue]: https://github.com/rafi/vim-unite-issue -[operator-user]: https://github.com/kana/vim-operator-user -[operator-replace]: https://github.com/kana/vim-operator-replace -[operator-surround]: https://github.com/rhysd/vim-operator-surround -[textobj-user]: https://github.com/kana/vim-textobj-user -[textobj-multiblock]: https://github.com/osyo-manga/vim-textobj-multiblock diff --git a/docs/documentation.md b/docs/documentation.md index e69de29bb..f19c7241a 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -0,0 +1,608 @@ +## SpaceVim Documentation + +- Features + - [Awesome ui](#awesome-ui) + - [Language specific mode](#language-specific-mode) + - [c/c++ support](#cc-support) + - [python support](#python-support) + - [go support](#go-support) + - rust support + - php support + - perl support + - lua support + - [Unite centric work-flow](#unite-centric-work-flow) + - [Neovim centric - Dark powered mode](#neovim-centric---dark-powered-mode-of-spacevim) + - [multiple leader mode](#multiple-leader-mode) + - [Modular configuration](#modular-configuration) + - Lazy-load 90% of plugins with [dein.vim] + - Robust, yet light weight + - Extensive Neocomplete setup + - Central location for tags + - Lightweight simple status/tabline + - Premium color-schemes +- [Custom configuration](#custom-configuration) + + + +#### Features + +##### Awesome ui + +- outline + filemanager + checker + ![2017-02-01_1360x721](https://cloud.githubusercontent.com/assets/13142418/22506638/84705532-e8bc-11e6-8b72-edbdaf08426b.png) + +##### Language specific mode + +###### c/c++ support + +1. code completion: autocompletion and fuzzy match. + ![2017-02-01_1359x720](https://cloud.githubusercontent.com/assets/13142418/22505960/df9068de-e8b8-11e6-943e-d79ceca095f1.png) +2. syntax check: Asynchronous linting and make framework. + ![2017-02-01_1359x722](https://cloud.githubusercontent.com/assets/13142418/22506340/e28b4782-e8ba-11e6-974b-ca29574dcc1f.png) + +###### go support +1. code completion: + ![2017-02-01_1360x721](https://cloud.githubusercontent.com/assets/13142418/22508345/8215c5e4-e8c4-11e6-95ec-f2a6e1e2f4d2.png) +2. syntax check: + ![2017-02-01_1359x720](https://cloud.githubusercontent.com/assets/13142418/22509944/108b6508-e8cb-11e6-8104-6310a29ae796.png) + +###### python support +1. code completion: + ![2017-02-02_1360x724](https://cloud.githubusercontent.com/assets/13142418/22537799/7d1d47fe-e948-11e6-8168-a82e3f688554.png) +2. syntax check: + ![2017-02-02_1358x720](https://cloud.githubusercontent.com/assets/13142418/22537883/36de7b5e-e949-11e6-866f-73c48e8f59aa.png) + +##### Neovim centric - Dark powered mode of SpaceVim. + +By default, SpaceVim use these dark powered plugins: + +1. [deoplete.nvim](https://github.com/Shougo/deoplete.nvim) - Dark powered asynchronous completion framework for neovim +2. [dein.vim](https://github.com/Shougo/dein.vim) - Dark powered Vim/Neovim plugin manager + +TODO: + +1. [defx.nvim](https://github.com/Shougo/defx.nvim) - Dark powered file explorer +2. [deoppet.nvim](https://github.com/Shougo/deoppet.nvim) - Dark powered snippet plugin +3. [denite.nvim](https://github.com/Shougo/denite.nvim) - Dark powered asynchronous unite all interfaces for Neovim/Vim8 + +##### Modular configuration + +- SpaceVim will load custom configuration from `~/.local.vim` and `.local.vim` in current directory. +- SpaceVim support `~/.SpaceVim.d/init.vim` and `./SpaceVim.d/init.vim`. + + +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. +" By default it is ~/.cache/vimfiles. +let g:spacevim_plugin_bundle_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'] +" If you want to add some custom plugins, use these options: +let g:spacevim_custom_plugins = [ + \ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}], + \ ['wsdjeg/GitHub.vim'], + \ ] + +" Anything defined here are simply overrides +set wildignore+=\*/node_modules/\* +set guifont=Wingdings:h10 +``` + +#### 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](#window-management) +##### 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 `lp` + ![2017-01-21_1358x725](https://cloud.githubusercontent.com/assets/13142418/22175019/ce42d902-e027-11e6-89cd-4f44f70a10cd.png) + +- List all the mappings and description: `f` + ![2017-02-01_1359x723](https://cloud.githubusercontent.com/assets/13142418/22507351/24af0d74-e8c0-11e6-985e-4a1404b629ed.png) + +- List all the starred repos in github.com, fuzzy find and open the website of the repo. default key is `ls` + ![2017-02-01_1359x722](https://cloud.githubusercontent.com/assets/13142418/22506915/deb99caa-e8bd-11e6-9b80-316281ddb48c.png) + +#### 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 + +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 + +#### 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 + +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 + +##### Operators & Text Objects + +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 + + +#### Custom Key bindings + +Key | Mode | Action +----- |:----:| ------------------ +``+`y` | visual | Copy selection to X11 clipboard ("+y) +`Ctrl`+`c` | Normal | Copy full path of current buffer to X11 clipboard +``+`Ctrl`+`c` | Normal | Copy github.com url of current buffer to X11 clipboard(if it is a github repo) +``+`Ctrl`+`l` | Normal/visual | Copy github.com url of current lines to X11 clipboard(if it is a github repo) +``+`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 +----- |:----:| ------------------ +``+`cd` | Normal | Switch to the directory of the open buffer +``+`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 +``+`ts` | Normal | Toggle spell-checker (:setlocal spell!) +``+`tn` | Normal | Toggle line numbers (:setlocal nonumber!) +``+`tl` | Normal | Toggle hidden characters (:setlocal nolist!) +``+`th` | Normal | Toggle highlighted search (:set hlsearch!) +``+`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`+`` | Normal | Move to split below (j) +`Ctrl`+`` | Normal | Move to upper split (k) +`Ctrl`+`` | Normal | Move to left split (h) +`Ctrl`+`` | 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 +``+`lj` | Normal | Next on location list +``+`lk` | Normal | Previous on location list +``+`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 +``+`sv` | Normal | Split with previous buffer +``+`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]`+`` | Normal | Opens Unite menu:CustomKeyMaps +`[unite]`+`me` | Normal | Opens Unite output messages +``+`bl` | Normal | Opens Unite buffers, mru, bookmark +``+`ta` | Normal | Opens Unite tab +``+`ugf` | Normal | Opens Unite file with word at cursor +``+`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 +----- |:----:| ------------------ +`` | 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 + +##### Plugin: NERD Commenter + +Key | Mode | Action +----- |:----:| ------------------ +``+`cc` | Normal/visual | Comment out the current line or text selected in visual mode. +``+`cn` | Normal/visual | Same as cc but forces nesting. +``+`cu` | Normal/visual | Uncomments the selected line(s). +``+`cs` | Normal/visual | Comments out the selected lines with a pretty block formatted layout. +``+`cy` | Normal/visual | Same as cc except that the commented line(s) are yanked first. + +##### Plugin: Goyo and Limelight + +Key | Mode | Action +----- |:----:| ------------------ +``+`G` | Normal | Toggle distraction-free writing + +##### Plugin: ChooseWin + +Key | Mode | Action +----- |:----:| ------------------ +`-` | Normal | Choose a window to edit +``+`-` | 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 +----- |:----:| ------------------ +``+`gs` | Normal | Git status +``+`gd` | Normal | Git diff +``+`gc` | Normal | Git commit +``+`gb` | Normal | Git blame +``+`gp` | Normal | Git push + +##### Plugin: vim-signify + +Key | Mode | Action +----- |:----:| ------------------ +``+`hj` / `]c` | Normal | Jump to next hunk +``+`hk` / `[c` | Normal | Jump to previous hunk +``+`hJ` / `]C` | Normal | Jump to last hunk +``+`hK` / `[C` | Normal | Jump to first hunk + +##### Misc Plugins + +Key | Mode | Action +----- |:----:| ------------------ +``+`gu` | Normal | Open undo tree +``+`i` | Normal | Toggle indentation lines +``+`j` | Normal | Start smalls +``+`r` | Normal | Quickrun +``+`?` | Normal | Dictionary +``+`W` | Normal | Wiki +``+`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: + +```viml +" 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 :Ydc +``` + + + + +[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 + +[html5]: https://github.com/othree/html5.vim +[mustache]: https://github.com/mustache/vim-mustache-handlebars +[markdown]: https://github.com/rcmdnk/vim-markdown +[ansible-yaml]: https://github.com/chase/vim-ansible-yaml +[jinja]: https://github.com/mitsuhiko/vim-jinja +[less]: https://github.com/groenewege/vim-less +[css3-syntax]: https://github.com/hail2u/vim-css3-syntax +[csv]: https://github.com/chrisbra/csv.vim +[pep8-indent]: https://github.com/hynek/vim-python-pep8-indent +[logstash]: https://github.com/robbles/logstash.vim +[tmux]: https://github.com/tmux-plugins/vim-tmux +[json]: https://github.com/elzr/vim-json +[toml]: https://github.com/cespare/vim-toml +[i3]: https://github.com/PotatoesMaster/i3-vim-syntax +[Dockerfile]: https://github.com/ekalinin/Dockerfile.vim +[go]: https://github.com/fatih/vim-go +[jedi-vim]: https://github.com/davidhalter/jedi-vim +[ruby]: https://github.com/vim-ruby/vim-ruby +[portfile]: https://github.com/jstrater/mpvim +[javascript]: https://github.com/jelera/vim-javascript-syntax +[javascript-indent]: https://github.com/jiangmiao/simple-javascript-indenter +[tern]: https://github.com/marijnh/tern_for_vim +[php]: https://github.com/StanAngeloff/php.vim +[phpfold]: https://github.com/rayburgemeestre/phpfolding.vim +[phpcomplete]: https://github.com/shawncplus/phpcomplete.vim +[phpindent]: https://github.com/2072/PHP-Indenting-for-VIm +[phpspec]: https://github.com/rafi/vim-phpspec +[vimfiler]: https://github.com/Shougo/vimfiler.vim +[tinycomment]: https://github.com/rafi/vim-tinycomment +[vinarise]: https://github.com/Shougo/vinarise.vim +[syntastic]: https://github.com/scrooloose/syntastic +[gita]: https://github.com/lambdalisue/vim-gita +[gista]: https://github.com/lambdalisue/vim-gista +[undotree]: https://github.com/mbbill/undotree +[incsearch]: https://github.com/haya14busa/incsearch.vim +[expand-region]: https://github.com/terryma/vim-expand-region +[open-browser]: https://github.com/tyru/open-browser.vim +[prettyprint]: https://github.com/thinca/vim-prettyprint +[quickrun]: https://github.com/thinca/vim-quickrun +[ref]: https://github.com/thinca/vim-ref +[dictionary]: https://github.com/itchyny/dictionary.vim +[vimwiki]: https://github.com/vimwiki/vimwiki +[thesaurus]: https://github.com/beloglazov/vim-online-thesaurus +[goyo]: https://github.com/junegunn/goyo.vim +[limelight]: https://github.com/junegunn/limelight.vim +[matchit]: http://www.vim.org/scripts/script.php?script_id=39 +[indentline]: https://github.com/Yggdroot/indentLine +[choosewin]: https://github.com/t9md/vim-choosewin +[delimitmate]: https://github.com/Raimondi/delimitMate +[echodoc]: https://github.com/Shougo/echodoc.vim +[deoplete]: https://github.com/Shougo/deoplete.nvim +[neocomplete]: https://github.com/Shougo/neocomplete.vim +[neosnippet]: https://github.com/Shougo/neosnippet.vim +[unite]: https://github.com/Shougo/unite.vim +[unite-colorscheme]: https://github.com/ujihisa/unite-colorscheme +[unite-filetype]: https://github.com/osyo-manga/unite-filetype +[unite-history]: https://github.com/thinca/vim-unite-history +[unite-build]: https://github.com/Shougo/unite-build +[unite-outline]: https://github.com/h1mesuke/unite-outline +[unite-tag]: https://github.com/tsukkee/unite-tag +[unite-quickfix]: https://github.com/osyo-manga/unite-quickfix +[neossh]: https://github.com/Shougo/neossh.vim +[unite-pull-request]: https://github.com/joker1007/unite-pull-request +[junkfile]: https://github.com/Shougo/junkfile.vim +[unite-issue]: https://github.com/rafi/vim-unite-issue +[operator-user]: https://github.com/kana/vim-operator-user +[operator-replace]: https://github.com/kana/vim-operator-replace +[operator-surround]: https://github.com/rhysd/vim-operator-surround +[textobj-user]: https://github.com/kana/vim-textobj-user +[textobj-multiblock]: https://github.com/osyo-manga/vim-textobj-multiblock