SpaceVim:高度可定制模块化 vim 配置
flml4039
8年前
<h2>SpaceVim</h2> <p>Like spacemacs, but for vim.</p> <h2>Features</h2> <ul> <li>Neovim-centric</li> <li>Modular configuration</li> <li>Lazy-load 90% of plugins withdein.vim</li> <li>Robust, yet light weight</li> <li>Unite centric work-flow</li> <li>Extensive Neocomplete setup</li> <li>Central location for tags</li> <li>Lightweight simple status/tabline</li> <li>Premium color-schemes</li> </ul> <h2>Structure</h2> <ul> <li>config/ - Configuration <ul> <li>plugins/ - Plugin configurations</li> <li>mappings.vim - Key mappings</li> <li>autocmds.vim - autocmd group</li> <li>general.vim - General configuration</li> <li>init.vim - runtimepath initialization</li> <li>neovim.vim - Neovim specific setup</li> <li>plugins.vim - Plugin bundles</li> <li>commands.vim - Commands</li> <li>functions.vim - Functions</li> <li>main.vim - Main config</li> </ul> </li> <li>ftplugin/ - Language specific custom settings</li> <li>snippets/ - Code snippets</li> <li>filetype.vim - Custom filetype detection</li> <li>init.vim - Sources config/main.vim</li> <li>vimrc - Sources config/main.vim</li> </ul> <h2>Installl</h2> <ul> <li>vim</li> </ul> <pre> mv ~/.vimrc ~/.vimrc_bak mv ~/.vim ~/.vim_bak git clone https://github.com/SpaceVim/SpaceVim.git ~/.vim</pre> <ul> <li>nvim</li> </ul> <pre> git clone https://github.com/SpaceVim/SpaceVim.git ~/.config/nvim</pre> <h2>Modular configuration</h2> <p>SpaceVim will load custom configuration from ~/.local.vim and .local.vim in current directory.</p> <p>here is an example:</p> <pre> " 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> <h2>Unite centric work-flow</h2> <ul> <li> <p>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 <img src="https://simg.open-open.com/show/264e05ced80ed4b0a702f9f47ca4bc45.png"></p> </li> <li> <p>List all the mappings and description: f<space> <img src="https://simg.open-open.com/show/d0b6cd09699a91c083ed716f62f47d97.png"></p> </li> <li> <p>List all the starred repos in github.com, fuzzy find and open the website of the repo. default key is <leader>ls <img src="https://simg.open-open.com/show/4489636991b24a19875493733fc8949e.png"></p> </li> </ul> <h2>Plugin Highlights</h2> <ul> <li>Package management with caching enabled and lazy loading</li> <li>Project-aware tabs and label</li> <li>Vimfiler as file-manager + SSH connections</li> <li>Go completion via vim-go and gocode</li> <li>Javascript completion via Tern</li> <li>PHP completion, indent, folds, syntax</li> <li>Python jedi completion, pep8 convention</li> <li>Languages: Ansible, css3, csv, json, less, markdown, mustache</li> <li>Helpers: Undo tree, bookmarks, git, tmux navigation, hex editor, sessions, and much more.</li> </ul> <p><em>Note</em> that 90% of the plugins are <strong> <a href="/misc/goto?guid=4959732994380567532" rel="nofollow,noindex">lazy-loaded</a> </strong> .</p> <h2>Non Lazy-Loaded Plugins</h2> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959732994471994205" rel="nofollow,noindex">dein.vim</a></td> <td>Dark powered Vim/Neovim plugin manager</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732994558276097" rel="nofollow,noindex">vimproc</a></td> <td>Interactive command execution</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732994635965874" rel="nofollow,noindex">colorschemes</a></td> <td>Awesome color-schemes</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732994730270331" rel="nofollow,noindex">file-line</a></td> <td>Allow opening a file in a given line</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732994816895012" rel="nofollow,noindex">neomru</a></td> <td>MRU source for Unite</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732994903321115" rel="nofollow,noindex">cursorword</a></td> <td>Underlines word under cursor</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732994982420477" rel="nofollow,noindex">gitbranch</a></td> <td>Lightweight git branch detection</td> </tr> <tr> <td><a href="/misc/goto?guid=4959632627030655096" rel="nofollow,noindex">gitgutter</a></td> <td>Shows git diffs in the gutter</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995099575997" rel="nofollow,noindex">tinyline</a></td> <td>Tiny great looking statusline</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995187609915" rel="nofollow,noindex">tagabana</a></td> <td>Central location for all tags</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995266769622" rel="nofollow,noindex">bookmarks</a></td> <td>Bookmarks, works independently from vim marks</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995355008948" rel="nofollow,noindex">tmux-navigator</a></td> <td>Seamless navigation between tmux panes and vim splits</td> </tr> </tbody> </table> <h2>Lazy-Loaded Plugins</h2> <h3>Language</h3> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959732995440127794" rel="nofollow,noindex">html5</a></td> <td>HTML5 omnicomplete and syntax</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995521179684" rel="nofollow,noindex">mustache</a></td> <td>Mustache and handlebars syntax</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995604479018" rel="nofollow,noindex">markdown</a></td> <td>Markdown syntax highlighting</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995691816106" rel="nofollow,noindex">ansible-yaml</a></td> <td>Additional support for Ansible</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995773262299" rel="nofollow,noindex">jinja</a></td> <td>Jinja support in vim</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995854270476" rel="nofollow,noindex">less</a></td> <td>Syntax for LESS</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732995945350510" rel="nofollow,noindex">css3-syntax</a></td> <td>CSS3 syntax support to vim's built-in syntax/css.vim</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996029559607" rel="nofollow,noindex">csv</a></td> <td>Handling column separated data</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996113752634" rel="nofollow,noindex">pep8-indent</a></td> <td>Nicer Python indentation</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996202305900" rel="nofollow,noindex">logstash</a></td> <td>Highlights logstash configuration files</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996279303251" rel="nofollow,noindex">tmux</a></td> <td>vim plugin for tmux.conf</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996366055280" rel="nofollow,noindex">json</a></td> <td>Better JSON support</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996450603382" rel="nofollow,noindex">toml</a></td> <td>Syntax for TOML</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996537870798" rel="nofollow,noindex">i3</a></td> <td>i3 window manager config syntax</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996617836357" rel="nofollow,noindex">Dockerfile</a></td> <td>syntax and snippets for Dockerfile</td> </tr> <tr> <td><a href="/misc/goto?guid=4958847391531220982" rel="nofollow,noindex">go</a></td> <td>Go development</td> </tr> <tr> <td><a href="/misc/goto?guid=4959615877208284034" rel="nofollow,noindex">jedi-vim</a></td> <td>Python jedi autocompletion library</td> </tr> <tr> <td><a href="/misc/goto?guid=4959616284043902447" rel="nofollow,noindex">ruby</a></td> <td>Ruby configuration files</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996783590351" rel="nofollow,noindex">portfile</a></td> <td>Macports portfile configuration files</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996869222600" rel="nofollow,noindex">javascript</a></td> <td>Enhanced Javascript syntax</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732996962960044" rel="nofollow,noindex">javascript-indent</a></td> <td>Javascript indent script</td> </tr> <tr> <td><a href="/misc/goto?guid=4958968573072252023" rel="nofollow,noindex">tern</a></td> <td>Provides Tern-based JavaScript editing support</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997071211669" rel="nofollow,noindex">php</a></td> <td>Up-to-date PHP syntax file</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997156846287" rel="nofollow,noindex">phpfold</a></td> <td>PHP folding</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997239840025" rel="nofollow,noindex">phpcomplete</a></td> <td>Improved PHP omnicompletion</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997327496946" rel="nofollow,noindex">phpindent</a></td> <td>PHP official indenting</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997399306034" rel="nofollow,noindex">phpspec</a></td> <td>PhpSpec integration</td> </tr> </tbody> </table> <h3>Commands</h3> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959732997486032596" rel="nofollow,noindex">vimfiler</a></td> <td>Powerful file explorer</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997558088916" rel="nofollow,noindex">tinycomment</a></td> <td>Robust but light-weight commenting</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997644746078" rel="nofollow,noindex">vinarise</a></td> <td>Hex editor</td> </tr> <tr> <td><a href="/misc/goto?guid=4958836238115746026" rel="nofollow,noindex">syntastic</a></td> <td>Syntax checking hacks</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997751423454" rel="nofollow,noindex">gita</a></td> <td>An awesome git handling plugin</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997837117526" rel="nofollow,noindex">gista</a></td> <td>Manipulate gists in Vim</td> </tr> <tr> <td><a href="/misc/goto?guid=4958836238761895900" rel="nofollow,noindex">undotree</a></td> <td>Ultimate undo history visualizer</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732997946865502" rel="nofollow,noindex">incsearch</a></td> <td>Improved incremental searching</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998029776118" rel="nofollow,noindex">expand-region</a></td> <td>Visually select increasingly larger regions of text</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998100008112" rel="nofollow,noindex">open-browser</a></td> <td>Open URI with your favorite browser</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998183687661" rel="nofollow,noindex">prettyprint</a></td> <td>Pretty-print vim variables</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998263282566" rel="nofollow,noindex">quickrun</a></td> <td>Run commands quickly</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998345125340" rel="nofollow,noindex">ref</a></td> <td>Integrated reference viewer</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998425812966" rel="nofollow,noindex">dictionary</a></td> <td>Dictionary.app interface</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998509324244" rel="nofollow,noindex">vimwiki</a></td> <td>Personal Wiki for Vim</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998589703280" rel="nofollow,noindex">thesaurus</a></td> <td>Look up words in an online thesaurus</td> </tr> </tbody> </table> <h3>Commands</h3> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959732998664232528" rel="nofollow,noindex">goyo</a></td> <td>Distraction-free writing</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998752019934" rel="nofollow,noindex">limelight</a></td> <td>Hyperfocus-writing</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732998830436741" rel="nofollow,noindex">matchit</a></td> <td>Intelligent pair matching</td> </tr> <tr> <td><a href="/misc/goto?guid=4959632627427389675" rel="nofollow,noindex">indentline</a></td> <td>Display vertical indention lines</td> </tr> <tr> <td><a href="/misc/goto?guid=4959676867832721003" rel="nofollow,noindex">choosewin</a></td> <td>Choose window to use, like tmux's 'display-pane'</td> </tr> </tbody> </table> <h3>Completion</h3> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959732998969729281" rel="nofollow,noindex">delimitmate</a></td> <td>Insert mode auto-completion for quotes, parens, brackets</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999047541464" rel="nofollow,noindex">echodoc</a></td> <td>Print objects' documentation in echo area</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999123007799" rel="nofollow,noindex">deoplete</a></td> <td>Neovim: Dark powered asynchronous completion framework</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999207978052" rel="nofollow,noindex">neocomplete</a></td> <td>Next generation completion framework</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999287993630" rel="nofollow,noindex">neosnippet</a></td> <td>Contains neocomplete snippets source</td> </tr> </tbody> </table> <h3>Unite</h3> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959732999371046915" rel="nofollow,noindex">unite</a></td> <td>Unite and create user interfaces</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999452912906" rel="nofollow,noindex">unite-colorscheme</a></td> <td>Browse colorschemes</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999538314078" rel="nofollow,noindex">unite-filetype</a></td> <td>Select file type</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999614265683" rel="nofollow,noindex">unite-history</a></td> <td>Browse history of command/search</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999699872361" rel="nofollow,noindex">unite-build</a></td> <td>Build with Unite interface</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999776123250" rel="nofollow,noindex">unite-outline</a></td> <td>File "outline" source for unite</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999860173453" rel="nofollow,noindex">unite-tag</a></td> <td>Tags source for Unite</td> </tr> <tr> <td><a href="/misc/goto?guid=4959732999930837284" rel="nofollow,noindex">unite-quickfix</a></td> <td>Quickfix source for Unite</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000019308149" rel="nofollow,noindex">neossh</a></td> <td>SSH interface for plugins</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000089111109" rel="nofollow,noindex">unite-pull-request</a></td> <td>GitHub pull-request source for Unite</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000172279887" rel="nofollow,noindex">junkfile</a></td> <td>Create temporary files for memo and testing</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000262920579" rel="nofollow,noindex">unite-issue</a></td> <td>Issue manager for JIRA and GitHub</td> </tr> </tbody> </table> <h3>Operators & Text Objects</h3> <table> <thead> <tr> <th>Name</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/misc/goto?guid=4959733000331813683" rel="nofollow,noindex">operator-user</a></td> <td>Define your own operator easily</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000422395837" rel="nofollow,noindex">operator-replace</a></td> <td>Operator to replace text with register content</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000504664821" rel="nofollow,noindex">operator-surround</a></td> <td>Operator to enclose text objects</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000575557695" rel="nofollow,noindex">textobj-user</a></td> <td>Create your own text objects</td> </tr> <tr> <td><a href="/misc/goto?guid=4959733000659048649" rel="nofollow,noindex">textobj-multiblock</a></td> <td>Handle multiple brackets objects</td> </tr> </tbody> </table> <h2>Custom Key bindings</h2> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + y</td> <td>Normal/visual</td> <td>Copy selection to X11 clipboard ("+y)</td> </tr> <tr> <td><leader> + p</td> <td>Normal/visual</td> <td>Paste selection from X11 clipboard ("+p)</td> </tr> <tr> <td>Ctrl + f</td> <td>Normal</td> <td>Smart page forward (C-f/C-d)</td> </tr> <tr> <td>Ctrl + b</td> <td>Normal</td> <td>Smart page backwards (C-b/C-u)</td> </tr> <tr> <td>Ctrl + e</td> <td>Normal</td> <td>Smart scroll down (3C-e/j)</td> </tr> <tr> <td>Ctrl + y</td> <td>Normal</td> <td>Smart scroll up (3C-y/k)</td> </tr> <tr> <td>Ctrl + q</td> <td>Normal</td> <td>Ctrl + w</td> </tr> <tr> <td>Ctrl + x</td> <td>Normal</td> <td>Switch buffer and placement</td> </tr> <tr> <td>Up,Down</td> <td>Normal</td> <td>Smart up and down</td> </tr> <tr> <td>}</td> <td>Normal</td> <td>After paragraph motion go to first non-blank char (}^)</td> </tr> <tr> <td><</td> <td>Visual/Normal</td> <td>Indent to left and re-select</td> </tr> <tr> <td>></td> <td>Visual/Normal</td> <td>Indent to right and re-select</td> </tr> <tr> <td>Tab</td> <td>Visual</td> <td>Indent to right and re-select</td> </tr> <tr> <td>Shift + Tab</td> <td>Visual</td> <td>Indent to left and re-select</td> </tr> <tr> <td>gp</td> <td>Normal</td> <td>Select last paste</td> </tr> <tr> <td>Q / gQ</td> <td>Normal</td> <td>Disable EX-mode ()</td> </tr> <tr> <td>Ctrl + a</td> <td>Command</td> <td>Navigation in command line</td> </tr> <tr> <td>Ctrl + b</td> <td>Command</td> <td>Move cursor backward in command line</td> </tr> <tr> <td>Ctrl + f</td> <td>Command</td> <td>Move cursor forward in command line</td> </tr> </tbody> </table> <h3>File Operations</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + cd</td> <td>Normal</td> <td>Switch to the root directory(vim-rooter)</td> </tr> <tr> <td><leader> + w</td> <td>Normal/visual</td> <td>Write (:w)</td> </tr> <tr> <td>Ctrl + s</td> <td><em>All</em></td> <td>Write (:w)</td> </tr> <tr> <td>W!!</td> <td>Command</td> <td>Write as root</td> </tr> </tbody> </table> <h3>Editor UI</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>F2</td> <td><em>All</em></td> <td>Toggle tagbar</td> </tr> <tr> <td>F3</td> <td><em>All</em></td> <td>Toggle Vimfiler</td> </tr> <tr> <td><leader> + ts</td> <td>Normal</td> <td>Toggle spell-checker (:setlocal spell!)</td> </tr> <tr> <td><leader> + tn</td> <td>Normal</td> <td>Toggle line numbers (:setlocal nonumber!)</td> </tr> <tr> <td><leader> + tl</td> <td>Normal</td> <td>Toggle hidden characters (:setlocal nolist!)</td> </tr> <tr> <td><leader> + th</td> <td>Normal</td> <td>Toggle highlighted search (:set hlsearch!)</td> </tr> <tr> <td><leader> + tw</td> <td>Normal</td> <td>Toggle wrap (:setlocal wrap! breakindent!)</td> </tr> <tr> <td>g0</td> <td>Normal</td> <td>Go to first tab (:tabfirst)</td> </tr> <tr> <td>g$</td> <td>Normal</td> <td>Go to last tab (:tablast)</td> </tr> <tr> <td>gr</td> <td>Normal</td> <td>Go to preview tab (:tabprevious)</td> </tr> <tr> <td>Ctrl + <Dow></td> <td>Normal</td> <td>Move to split below (j)</td> </tr> <tr> <td>Ctrl + <Up></td> <td>Normal</td> <td>Move to upper split (k)</td> </tr> <tr> <td>Ctrl + <Left></td> <td>Normal</td> <td>Move to left split (h)</td> </tr> <tr> <td>Ctrl + <Right></td> <td>Normal</td> <td>Move to right split (l)</td> </tr> <tr> <td>*</td> <td>Visual</td> <td>Search selection forwards</td> </tr> <tr> <td>#</td> <td>Visual</td> <td>Search selection backwards</td> </tr> <tr> <td>, + Space</td> <td>Normal</td> <td>Remove all spaces at EOL</td> </tr> <tr> <td>Ctrl + r</td> <td>Visual</td> <td>Replace selection</td> </tr> <tr> <td><leader> + lj</td> <td>Normal</td> <td>Next on location list</td> </tr> <tr> <td><leader> + lk</td> <td>Normal</td> <td>Previous on location list</td> </tr> <tr> <td><leader> + S</td> <td>Normal/visual</td> <td>Source selection</td> </tr> </tbody> </table> <h3>Window Management</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>q</td> <td>Normal</td> <td>Smart buffer close</td> </tr> <tr> <td>s + p</td> <td>Normal</td> <td>Split nicely</td> </tr> <tr> <td>s + v</td> <td>Normal</td> <td>:split</td> </tr> <tr> <td>s + g</td> <td>Normal</td> <td>:vsplit</td> </tr> <tr> <td>s + t</td> <td>Normal</td> <td>Open new tab (:tabnew)</td> </tr> <tr> <td>s + o</td> <td>Normal</td> <td>Close other windows (:only)</td> </tr> <tr> <td>s + x</td> <td>Normal</td> <td>Remove buffer, leave blank window</td> </tr> <tr> <td>s + q</td> <td>Normal</td> <td>Closes current buffer (:close)</td> </tr> <tr> <td>s + Q</td> <td>Normal</td> <td>Removes current buffer (:bdelete)</td> </tr> <tr> <td>Tab</td> <td>Normal</td> <td>Next window or tab</td> </tr> <tr> <td>Shift + Tab</td> <td>Normal</td> <td>Previous window or tab</td> </tr> <tr> <td><leader> + sv</td> <td>Normal</td> <td>Split with previous buffer</td> </tr> <tr> <td><leader> + sg</td> <td>Normal</td> <td>Vertical split with previous buffer</td> </tr> </tbody> </table> <h3>Plugin: Unite</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>; + r</td> <td>Normal</td> <td>Resumes Unite window</td> </tr> <tr> <td>; + f</td> <td>Normal</td> <td>Opens Unite file recursive search</td> </tr> <tr> <td>; + i</td> <td>Normal</td> <td>Opens Unite git file search</td> </tr> <tr> <td>; + g</td> <td>Normal</td> <td>Opens Unite grep with ag (the_silver_searcher)</td> </tr> <tr> <td>; + u</td> <td>Normal</td> <td>Opens Unite source</td> </tr> <tr> <td>; + t</td> <td>Normal</td> <td>Opens Unite tag</td> </tr> <tr> <td>; + T</td> <td>Normal</td> <td>Opens Unite tag/include</td> </tr> <tr> <td>; + l</td> <td>Normal</td> <td>Opens Unite location list</td> </tr> <tr> <td>; + q</td> <td>Normal</td> <td>Opens Unite quick fix</td> </tr> <tr> <td>; + e</td> <td>Normal</td> <td>Opens Unite register</td> </tr> <tr> <td>; + j</td> <td>Normal</td> <td>Opens Unite jump, change</td> </tr> <tr> <td>; + h</td> <td>Normal</td> <td>Opens Unite history/yank</td> </tr> <tr> <td>; + s</td> <td>Normal</td> <td>Opens Unite session</td> </tr> <tr> <td>; + o</td> <td>Normal</td> <td>Opens Unite outline</td> </tr> <tr> <td>; + ma</td> <td>Normal</td> <td>Opens Unite mapping</td> </tr> <tr> <td>; + me</td> <td>Normal</td> <td>Opens Unite output messages</td> </tr> <tr> <td><leader> + b</td> <td>Normal</td> <td>Opens Unite buffers, mru, bookmark</td> </tr> <tr> <td><leader> + ta</td> <td>Normal</td> <td>Opens Unite tab</td> </tr> <tr> <td><leader> + gf</td> <td>Normal</td> <td>Opens Unite file with word at cursor</td> </tr> <tr> <td><leader> + gt</td> <td>Normal/visual</td> <td>Opens Unite tag with word at cursor</td> </tr> <tr> <td><leader> + gg</td> <td>Visual</td> <td>Opens Unite navigate with word at cursor</td> </tr> <tr> <td><strong>Within <em>Unite</em> buffers </strong></td> <td> </td> <td> </td> </tr> <tr> <td>Ctrl + h/k/l/r</td> <td>Normal</td> <td>Un-map</td> </tr> <tr> <td>Ctrl + r</td> <td>Normal</td> <td>Redraw</td> </tr> <tr> <td>Ctrl + j</td> <td>Insert</td> <td>Select next line</td> </tr> <tr> <td>Ctrl + k</td> <td>Insert</td> <td>Select previous line</td> </tr> <tr> <td>'</td> <td>Normal</td> <td>Toggle mark current candidate, up</td> </tr> <tr> <td>e</td> <td>Normal</td> <td>Run default action</td> </tr> <tr> <td>Ctrl + v</td> <td>Normal</td> <td>Open in a split</td> </tr> <tr> <td>Ctrl + s</td> <td>Normal</td> <td>Open in a vertical split</td> </tr> <tr> <td>Ctrl + t</td> <td>Normal</td> <td>Open in a new tab</td> </tr> <tr> <td>Tab</td> <td>Normal</td> <td>Ctrl + w + w</td> </tr> <tr> <td>Escape</td> <td>Normal</td> <td>Exit unite</td> </tr> <tr> <td>jj</td> <td>Insert</td> <td>Leave Insert mode</td> </tr> <tr> <td>r</td> <td>Normal</td> <td>Replace ('search' profile) or rename</td> </tr> <tr> <td>Tab</td> <td>Insert</td> <td>Unite autocompletion</td> </tr> <tr> <td>Ctrl + z</td> <td>Normal/insert</td> <td>Toggle transpose window</td> </tr> <tr> <td>Ctrl + w</td> <td>Insert</td> <td>Delete backward path</td> </tr> </tbody> </table> <h3>Plugin: VimFiler</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>; + e</td> <td>Normal</td> <td>Toggle file explorer</td> </tr> <tr> <td>; + a</td> <td>Normal</td> <td>Toggle file explorer on current file</td> </tr> <tr> <td><strong>Within <em>VimFiler</em> buffers </strong></td> <td> </td> <td> </td> </tr> <tr> <td>Ctrl + j</td> <td>Normal</td> <td>Un-map</td> </tr> <tr> <td>Ctrl + l</td> <td>Normal</td> <td>Un-map</td> </tr> <tr> <td>E</td> <td>Normal</td> <td>Un-map</td> </tr> <tr> <td>sv</td> <td>Normal</td> <td>Split edit</td> </tr> <tr> <td>sg</td> <td>Normal</td> <td>Vertical split edit</td> </tr> <tr> <td>p</td> <td>Normal</td> <td>Preview</td> </tr> <tr> <td>i</td> <td>Normal</td> <td>Switch to directory history</td> </tr> <tr> <td>Ctrl + r</td> <td>Normal</td> <td>Redraw</td> </tr> <tr> <td>Ctrl + q</td> <td>Normal</td> <td>Quick look</td> </tr> </tbody> </table> <h3>Plugin: neocomplete</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>Enter</td> <td>Insert</td> <td>Smart snippet expansion</td> </tr> <tr> <td>Ctrl + space</td> <td>Insert</td> <td>Autocomplete with Unite</td> </tr> <tr> <td>Tab</td> <td>Insert/select</td> <td>Smart tab movement or completion</td> </tr> <tr> <td>Ctrl + j/k/f/b</td> <td>Insert</td> <td>Movement in popup</td> </tr> <tr> <td>Ctrl + g</td> <td>Insert</td> <td>Undo completion</td> </tr> <tr> <td>Ctrl + l</td> <td>Insert</td> <td>Complete common string</td> </tr> <tr> <td>Ctrl + o</td> <td>Insert</td> <td>Expand snippet</td> </tr> <tr> <td>Ctrl + y</td> <td>Insert</td> <td>Close pop-up</td> </tr> <tr> <td>Ctrl + e</td> <td>Insert</td> <td>Close pop-up</td> </tr> <tr> <td>Ctrl + l</td> <td>Insert</td> <td>Complete common string</td> </tr> <tr> <td>Ctrl + d</td> <td>Insert</td> <td>Scroll down</td> </tr> <tr> <td>Ctrl + u</td> <td>Insert</td> <td>Scroll up</td> </tr> </tbody> </table> <h3>Plugin: TinyComment</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + v</td> <td>Normal/visual</td> <td>Toggle single-line comments</td> </tr> <tr> <td><leader> + V</td> <td>Normal/visual</td> <td>Toggle comment block</td> </tr> </tbody> </table> <h3>Plugin: Goyo and Limelight</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + G</td> <td>Normal</td> <td>Toggle distraction-free writing</td> </tr> </tbody> </table> <h3>Plugin: ChooseWin</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>-</td> <td>Normal</td> <td>Choose a window to edit</td> </tr> <tr> <td><leader> + -</td> <td>Normal</td> <td>Switch editing window with selected</td> </tr> </tbody> </table> <h3>Plugin: Bookmarks</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>m + a</td> <td>Normal</td> <td>Show list of all bookmarks</td> </tr> <tr> <td>m + m</td> <td>Normal</td> <td>Toggle bookmark in current line</td> </tr> <tr> <td>m + n</td> <td>Normal</td> <td>Jump to next bookmark</td> </tr> <tr> <td>m + p</td> <td>Normal</td> <td>Jump to previous bookmark</td> </tr> <tr> <td>m + i</td> <td>Normal</td> <td>Annotate bookmark</td> </tr> </tbody> </table> <h3>Plugin: Gita</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + gs</td> <td>Normal</td> <td>Git status</td> </tr> <tr> <td><leader> + gd</td> <td>Normal</td> <td>Git diff</td> </tr> <tr> <td><leader> + gc</td> <td>Normal</td> <td>Git commit</td> </tr> <tr> <td><leader> + gb</td> <td>Normal</td> <td>Git blame</td> </tr> <tr> <td><leader> + gB</td> <td>Normal</td> <td>Open in browser</td> </tr> <tr> <td><leader> + gp</td> <td>Normal</td> <td>Git push</td> </tr> </tbody> </table> <h3>Plugin: GitGutter</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + hj</td> <td>Normal</td> <td>Jump to next hunk</td> </tr> <tr> <td><leader> + hk</td> <td>Normal</td> <td>Jump to previous hunk</td> </tr> <tr> <td><leader> + hs</td> <td>Normal</td> <td>Stage hunk</td> </tr> <tr> <td><leader> + hr</td> <td>Normal</td> <td>Revert hunk</td> </tr> <tr> <td><leader> + hp</td> <td>Normal</td> <td>Preview hunk</td> </tr> </tbody> </table> <h3>Misc Plugins</h3> <table> <thead> <tr> <th>Key</th> <th>Mode</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td><leader> + gu</td> <td>Normal</td> <td>Open undo tree</td> </tr> <tr> <td><leader> + i</td> <td>Normal</td> <td>Toggle indentation lines</td> </tr> <tr> <td><leader> + j</td> <td>Normal</td> <td>Start smalls</td> </tr> <tr> <td><leader> + r</td> <td>Normal</td> <td>Quickrun</td> </tr> <tr> <td><leader> + ?</td> <td>Normal</td> <td>Dictionary</td> </tr> <tr> <td><leader> + W</td> <td>Normal</td> <td>Wiki</td> </tr> <tr> <td><leader> + K</td> <td>Normal</td> <td>Thesaurus</td> </tr> </tbody> </table> <h2>Enjoy!</h2> <h2>Credits & Thanks</h2> <ul> <li>vimdoc generate doc file for SpaceVim</li> <li>Rafael Bodill and his vim-config</li> <li>Bailey Ling and his dotvim</li> </ul> <p> </p> <p> </p>