diff --git a/docs/_posts/2017-12-30-SpaceVim-release-v0.6.0.md b/docs/_posts/2017-12-30-SpaceVim-release-v0.6.0.md
index 150769424..661f43f3b 100644
--- a/docs/_posts/2017-12-30-SpaceVim-release-v0.6.0.md
+++ b/docs/_posts/2017-12-30-SpaceVim-release-v0.6.0.md
@@ -1,7 +1,7 @@
---
title: SpaceVim release v0.6.0
categories: [changelog, blog]
-excerpt: "Many new features come out with v0.6.0"
+excerpt: "Many new features come out with v0.6.0, including c/cpp suport and code runner"
type: NewsArticle
image: https://user-images.githubusercontent.com/13142418/33793078-3446cb6e-dc76-11e7-9998-376a355557a4.png
comments: true
diff --git a/docs/cn/documentation.md b/docs/cn/documentation.md
index 2cab7ee7b..e94ed0beb 100644
--- a/docs/cn/documentation.md
+++ b/docs/cn/documentation.md
@@ -5,203 +5,119 @@ redirect_from: "/README_zh_cn/"
lang: cn
---
-## 目录
+# SpaceVim 使用文档
-- [安装](#安装)
-- [更新](#更新)
-- [文档](#文档)
- - [核心思想](#核心思想)
- - [记忆辅助](#记忆辅助)
- - [可视化交互](#可视化交互)
- - [一致性](#一致性)
- - [社区驱动](#社区驱动)
- - [显著特性](#显著特性)
- - [快捷键导航](#快捷键导航)
- - [运行截图](#运行截图)
- - [欢迎页面](#欢迎页面)
- - [工作界面](#工作界面)
- - [谁将从 SpaceVim 中获益?](#谁将从-spacevim-中获益)
- - [更新和回滚](#更新和回滚)
- - [SpaceVim 自身更新](#spacevim-自身更新)
- - [自动更新](#自动更新)
- - [通过插件管理器更新](#通过插件管理器更新)
- - [通过 git 进行更新](#通过-git-进行更新)
- - [更新插件](#更新插件)
- - [配置模块](#配置模块)
- - [用户配置](#用户配置)
- - [自动生成用户配置](#自动生成用户配置)
- - [用户配置目录](#用户配置目录)
- - [概念](#概念)
- - [临时快捷键](#临时快捷键)
- - [优雅的界面](#优雅的界面)
- - [主题](#主题)
- - [字体](#字体)
- - [界面元素切换](#界面元素切换)
- - [状态栏 & 标签栏](#状态栏--标签栏)
- - [状态栏](#状态栏)
- - [标签栏](#标签栏)
- - [手册](#手册)
- - [自动补全](#自动补全)
- - [Unite/Denite](#unitedenite)
- - [Unite/Denite buffer 中的快捷键](#unitedenite-buffer-中的快捷键)
- - [交互](#交互)
- - [快捷键](#快捷键)
- - [快捷键导航](#快捷键导航-1)
- - [通过 Unite/Denite 浏览快捷键](#通过-unitedenite-浏览快捷键)
- - [获取帮助信息](#获取帮助信息)
- - [可用模块](#可用模块)
- - [可用的插件](#可用的插件)
- - [添加用户自定义插件](#添加用户自定义插件)
- - [界面元素显示切换](#界面元素显示切换)
- - [常规操作](#常规操作)
- - [光标移动](#光标移动)
- - [快速跳转](#快速跳转)
+- [核心思想](#核心思想)
+- [显著特性](#显著特性)
+- [运行截图](#运行截图)
+- [谁将从 SpaceVim 中获益?](#谁将从-spacevim-中获益)
+- [更新和回滚](#更新和回滚)
+ - [SpaceVim 自身更新](#spacevim-自身更新)
+ - [更新插件](#更新插件)
+ - [获取日志](#获取日志)
+- [用户配置](#用户配置)
+ - [Vim 兼容模式](#vim-兼容模式)
+ - [私有模块](#私有模块)
+- [概念](#概念)
+- [优雅的界面](#优雅的界面)
+ - [颜色主题](#颜色主题)
+ - [字体](#字体)
+ - [界面元素切换](#界面元素切换)
+ - [状态栏](#状态栏)
+ - [标签栏](#标签栏)
+- [常规快捷键](#常规快捷键)
+ - [窗口管理器](#窗口管理器)
+ - [File Operations](#file-operations)
+ - [Editor UI](#editor-ui)
+ - [Native functions](#native-functions)
+ - [Bookmarks management](#bookmarks-management)
+ - [Fuzzy finder](#fuzzy-finder)
+ - [交互](#交互)
+ - [快捷键](#快捷键)
+ - [获取帮助信息](#获取帮助信息)
+ - [可用模块](#可用模块)
+ - [界面元素显示切换](#界面元素显示切换)
+ - [常规操作](#常规操作)
+ - [光标移动](#光标移动)
+ - [使用 vim-easymotion 快速跳转](#使用-vim-easymotion-快速跳转)
- [快速跳到网址 (TODO)](#快速跳到网址-todo)
- - [常用的成对快捷键](#常用的成对快捷键)
- - [跳转,合并,拆分](#跳转合并拆分)
- - [跳转](#跳转)
- - [合并,拆分](#合并拆分)
- - [窗口操作](#窗口操作)
- - [窗口操作常用快捷键](#窗口操作常用快捷键)
- - [文件和 Buffer 操作](#文件和-buffer-操作)
- - [Buffer 操作相关快捷键](#buffer-操作相关快捷键)
- - [新建空白 buffer](#新建空白-buffer)
- - [特殊 buffer](#特殊-buffer)
- - [文件操作相关快捷键](#文件操作相关快捷键)
- - [Vim 和 SpaceVim 相关文件](#vim-和-spacevim-相关文件)
- - [文件树](#文件树)
- - [文件树中的常用操作](#文件树中的常用操作)
- - [文件树中打开文件](#文件树中打开文件)
+ - [常用的成对快捷键](#常用的成对快捷键)
+ - [跳转,合并,拆分](#跳转合并拆分)
+ - [跳转](#跳转)
+ - [合并,拆分](#合并拆分)
+ - [窗口操作](#窗口操作)
+ - [窗口操作常用快捷键](#窗口操作常用快捷键)
+ - [文件和 Buffer 操作](#文件和-buffer-操作)
+ - [Buffer 操作相关快捷键](#buffer-操作相关快捷键)
+ - [新建空白 buffer](#新建空白-buffer)
+ - [特殊 buffer](#特殊-buffer)
+ - [文件操作相关快捷键](#文件操作相关快捷键)
+ - [Vim 和 SpaceVim 相关文件](#vim-和-spacevim-相关文件)
+ - [文件树](#文件树)
+ - [文件树中的常用操作](#文件树中的常用操作)
+ - [文件树中打开文件](#文件树中打开文件)
- [以 `g` 为前缀的快捷键](#以-g-为前缀的快捷键)
- [以 `z` 开头的命令](#以-z-开头的命令)
- - [自动保存](#自动保存)
- [搜索](#搜索)
- [使用额外工具](#使用额外工具)
- [常用按键绑定](#常用按键绑定)
- [在当前文件中进行搜索](#在当前文件中进行搜索)
+ - [搜索当前文件所在的文件夹](#搜索当前文件所在的文件夹)
- [在所有打开的缓冲区中进行搜索](#在所有打开的缓冲区中进行搜索)
- [在任意目录中进行搜索](#在任意目录中进行搜索)
- [在工程中进行搜索](#在工程中进行搜索)
- [后台进行工程搜索](#后台进行工程搜索)
- [在网上进行搜索](#在网上进行搜索)
- - [用 fly 工具进行搜索](#用fly-工具进行搜索)
+ - [实时代码检索](#实时代码检索)
- [保持高亮](#保持高亮)
+ - [Highlight current symbol](#highlight-current-symbol)
- [编辑](#编辑)
- [粘贴文本](#粘贴文本)
- [粘贴文本自动缩进](#粘贴文本自动缩进)
- [文本操作命令](#文本操作命令)
- [文本插入命令](#文本插入命令)
+ - [Increase/Decrease numbers](#increasedecrease-numbers)
+ - [Replace text with iedit](#replace-text-with-iedit)
+ - [iedit states key bindings](#iedit-states-key-bindings)
+ - [Examples](#examples)
- [注释(Commentings)](#注释commentings)
- [多方式编码](#多方式编码)
- [错误处理](#错误处理)
- [工程管理](#工程管理)
+ - [Searching files in project](#searching-files-in-project)
+- [EditorConfig](#editorconfig)
+- [Vim Server](#vim-server)
- [成就](#成就)
- - [错误](#错误)
- - [Stars, forks and watchers](#stars-forks-and-watchers)
-- [特性](#特性)
- - [优雅的用户界面](#优雅的用户界面)
- - [按键绑定助记符](#按键绑定助记符)
-- [特定语言模式](#特定语言模式)
-- [按键导航](#按键导航)
- - [c/c++ 支持](#cc-支持)
- - [go 支持](#go-支持)
- - [python 支持](#python-支持)
-- [以 Neovim 为中心的 SpaceVim Dark powered 模式.](#以-neovim-为中心的-spacevim-dark-powered-模式)
-- [模块化配置](#模块化配置)
-- [多 leader 模式](#多-leader-模式)
- - [初始 vim 全局 leader](#初始-vim-全局-leader)
- - [本地 vim 初始 leader](#本地-vim-初始-leader)
- - [窗口函数 leader](#窗口函数-leader)
- - [联合工作流程 leader](#联合工作流程-leader)
-- [中心联合工作流程](#中心联合工作流程)
- - [插件亮点](#插件亮点)
- - [非延时加载插件](#非延时加载插件)
- - [延时加载插件](#延时加载插件)
- - [语言](#语言)
- - [命令](#命令)
- - [命令](#命令-1)
- - [补全](#补全)
- - [联合](#联合)
- - [操作符 & 文本的对象](#操作符--文本的对象)
- - [默认按键绑定](#默认按键绑定)
- - [文件操作符](#文件操作符)
- - [UI 编辑](#ui-编辑)
- - [窗口管理](#窗口管理)
- - [本地函数](#本地函数)
- - [Plugin: Unite](#plugin-unite)
- - [Plugin: neocomplete](#plugin-neocomplete)
- - [Plugin: NERD Commenter](#plugin-nerd-commenter)
- - [Plugin: Goyo and Limelight](#plugin-goyo-and-limelight)
- - [Plugin: ChooseWin](#plugin-choosewin)
- - [Plugin: Bookmarks](#plugin-bookmarks)
- - [Plugin: Gina/Gita](#plugin-ginagita)
- - [Plugin: vim-signify](#plugin-vim-signify)
- - [Misc Plugins](#misc-plugins)
- - [模块化配置](#模块化配置-1)
- - [Denite/Unite为主的工作平台](#deniteunite为主的工作平台)
- - [自动补全](#自动补全-1)
- - [细致的tags管理](#细致的tags管理)
-- [快速](#快速)
-## 安装
-
-**Linux/Mac:**
-
-```sh
-curl -sLf https://spacevim.org/install.sh | bash
-```
-
-想要获取更多的信息,请参考:
-
-```sh
-curl -sLf https://spacevim.org/install.sh | bash -s -- -h
-```
-
-SpaceVim是一种模块化配置,可以运行在vim或者neovim上,关于vim以及neovim的安装,请参考以下链接:
-
-[安装neovim](https://github.com/neovim/neovim/wiki/Installing-Neovim)
-
-[从源码编译vim](https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source)
-
-**windows:**
-
-Window 下最方便的是下载安装脚本([install.cmd](https://spacevim.org/install.cmd))至本地,直接运行,安装完毕后,打开 Gvim 他将自动下载插件,在 Windows 下需要手动安装 [Nerd-fonts](https://github.com/ryanoasis/nerd-fonts) 字体。
-
-## 更新
-
-可以通过 `:SPUpdate` 命令来更新spacevim 以及包含的插件,如果需要更新指定的插件,如:startuptime.vim,只需要执行 `:SPUpdate startuptime.vim`,也可以通过 `:SPUpdate SpaceVim` 来更新 SpaceVim.
-
-## 文档
-
-### 核心思想
+## 核心思想
四大核心思想: 记忆辅助, 可视化交互, 一致性,社区驱动.
如果违背了以上四大核心思想,我们将会尽力修复。
-#### 记忆辅助
+**记忆辅助**
所有快捷键,根据其功能的不同分为不同的组,以相应的按键作为前缀,例如 `b` 为 buffer 相关快捷键前缀,`p` 为 project 相关快捷键前缀, `s` 为 search 相关快捷键前缀,`h` 为 help 相关快捷键前缀。
-#### 可视化交互
+**可视化交互**
创新的实时快捷键辅助系统,以及查询系统,方便快捷查询到可用的模块、插件以及其他更多信息。
-#### 一致性
+**一致性**
相似的功能使用同样的快捷键,这在 SpaceVim 中随处可见。这得益于明确的约定。其他模块的文档都以此为基础。
-#### 社区驱动
+**社区驱动**
社区驱动,保证了 bug 修复的速度,以及新特性更新的速度。
-### 显著特性
+## 显著特性
-- **详细的文档:** 在 SpaceVim 通过 :h SpaceVim 来访问 SpaceVim 帮助文档。
+- **详细的文档:** 在 SpaceVim 中通过`:h SpaceVim`来访问 SpaceVim 帮助文档。
- **优雅简洁的界面:** 你将会喜欢这样的优雅而实用的界面。
- **确保手指不离开主键盘区域:** 使用 Space 作为前缀键,合理组织快捷键,确保手指不离开主键盘区域。
- **快捷键辅助系统:** SpaceVim 所有快捷键无需记忆,当输入出现停顿,会实时提示可用按键及其功能。
@@ -210,27 +126,13 @@ Window 下最方便的是下载安装脚本([install.cmd](https://spacevim.org
- **更易扩展:** 依照一些[约定](http://spacevim.org/development/),很容易将现有的插件集成到 SpaceVim 中来。
- **完美支持Neovim:** 依赖于 Neovim 的 romote 插件以及 异步 API,SpaceVim 运行在 Neovim 下将有更加完美的体验。
-### 快捷键导航
+## 运行截图
-SpaceVim 所有的快捷键都不需要去记忆,有强大的快捷键导航系统来提示每一个按键的具体功能,比如 Normal 模式下按下空格键,将出现如下提示:
-
-![mapping-guide](https://cloud.githubusercontent.com/assets/13142418/25778673/ae8c3168-3337-11e7-8536-ee78d59e5a9c.png)
-
-这一导航提示将所有以空格为前缀的快捷键分组展示,比如 `b` 是所以 buffer 相关的快捷键, `p` 是所有工程管理相关的快捷键。在导航模式下按下 `` 你将在状态栏上看见相应的帮助信息,按键介绍如下:
-
-| 按键 | 描述 |
-| ---- | -------------- |
-| `u` | 撤销前一按键 |
-| `n` | 导航系统下一页 |
-| `p` | 导航系统前一页 |
-
-### 运行截图
-
-#### 欢迎页面
+**欢迎页面**
![welcome-page](https://cloud.githubusercontent.com/assets/13142418/26402270/28ad72b8-40bc-11e7-945e-003f41e057be.png)
-#### 工作界面
+**工作界面**
![work-flow](https://cloud.githubusercontent.com/assets/296716/25455341/6af0b728-2a9d-11e7-9721-d2a694dde1a8.png)
@@ -242,7 +144,7 @@ Neovim 运行在 iTerm2 上,采用 SpaceVim,配色为:_base16-solarized-da
想要查阅更多截图,请阅读 [issue #415](https://github.com/SpaceVim/SpaceVim/issues/415)
-### 谁将从 SpaceVim 中获益?
+## 谁将从 SpaceVim 中获益?
- **初级** Vim 用户.
- 追求优雅界面的 Vim 用户
@@ -250,105 +152,90 @@ Neovim 运行在 iTerm2 上,采用 SpaceVim,配色为:_base16-solarized-da
- 想要学习一种不一样的编辑文件方式的 Vim 用户
- 追求简单但是可高度配置系统的 Vim 用户
-### 更新和回滚
+## 更新和回滚
-#### SpaceVim 自身更新
+### SpaceVim 自身更新
可通过很多种方式来更新 SpaceVim 的核心文件。建议在更新 SpaceVim 之前,更新一下所有的插件。具体内容如下:
-##### 自动更新
+**自动更新**
注意:默认,这一特性是禁用的,因为自动更新将会增加 SpaceVim 的启动时间,影响用户体验。如果你需要这一特性,可以将如下加入到用户配置文件中:`let g:spacevim_automatic_update = 1`。
启用这一特性后,SpaceVim 将会在每次启动时候检测是否有新版本。更新后需重启 SpaceVim。
-##### 通过插件管理器更新
+**通过插件管理器更新**
使用 `:SPUpdate SpaceVim` 这一命令,将会打开 SpaceVim 的插件管理器,更新 SpaceVim, 具体进度会在插件管理器 buffer 中展示。
-##### 通过 git 进行更新
+**通过 git 进行更新**
可通过在 SpaceVim 目录中手动执行 `git pull`, SpaceVim 在 windows 下默认目录为 `~/vimfilers`, 但在 Linux 下则可使用如下命令:
`git -C ~/.SpaceVim pull`.
-#### 更新插件
+### 更新插件
使用 `:SPUpdate` 这一命令将会更新所有插件,包括 SpaceVim 自身。当然这一命令也支持参数,参数为插件名称,可同时添加多个插件名称作为参数,同时可以使用 Tab 键来补全插件名称。
-### 配置模块
+### 获取日志
-这里仅仅是大致罗列了下常用的模块,若要了解关于配置模块更加详细的信息,可阅读 [SpaceVim's layers page](http://spacevim.org/layers/),(强烈建议阅读!)
+使用 `:SPDebugInfo!` 这一命令可以获取 SpaceVim 运行时日志,同时,可以使用 `SPC h I` 使用打开问题模板。
+可在这个模板中编辑问题,并提交。
-### 用户配置
+## 用户配置
-用户配置保存在 `~/.SpaceVim.d/` 文件夹。
-
-#### 自动生成用户配置
-
-初次启动 SpaceVim 时,他将提供选择目录,用户需要选择合适自己的配置模板。此时,SpaceVim 将自动在 `HOME` 目录生成 `~/.SpaceVim.d/init.vim`。
-
-#### 用户配置目录
-
-`~/.SpaceVim.d/` 将被加入 Vim 的运行时路径 `&runtimepath`。详情清阅读 :h rtp.
+初次启动 SpaceVim 时,他将提供选择目录,用户需要选择合适自己的配置模板。此时,SpaceVim 将自动在 `HOME` 目录生成 `~/.SpaceVim.d/init.toml`。所有用户脚本可以存储在`~/.SpaceVim.d/`,这一文件夹将被加入 Vim 的运行时路径 `&runtimepath`。详情清阅读 `:h rtp`。
当然,你也可以通过 `SPACEVIMDIR` 这一环境变量,执定用户配置目录。当然也可以通过软连接连改变目录位置,以便配置备份。
-SpaceVim 同时还支持项目本地配置,配置初始文件为,当前目录下的 `.SpaceVim.d/init.vim` 文件。同时当前目录下的 `.SpaceVim.d/` 也将被加入到 Vim 运行时路径。
+SpaceVim 同时还支持项目本地配置,配置初始文件为,当前目录下的 `.SpaceVim.d/init.toml` 文件。同时当前目录下的 `.SpaceVim.d/` 也将被加入到 Vim 运行时路径。
-这是一个用户配置文件示例:
+所有的 SpaceVim 选项可以使用 `:h SpaceVim-config` 来查看。选项名称未原先 Vim 脚本中使用的变量名称去处 `g:spacevim_` 前缀。
+
+如果你需要添加自定义以 `SPC` 为前缀的快捷键,你需要使用 bootstrap function,在其中加入:
```vim
-" 这是一些基础的定制信息, 请参阅 ~/.SpaceVim.d/init.vim
-" 文件来查看所有可能用到的配置信息:
-let g:spacevim_default_indent = 3
-let g:spacevim_max_column = 80
-
-" 更改默认的文件冗余备份目录.
-" 默认的冗余备份目录为 ~/.cache/vimfiles.
-let g:spacevim_plugin_bundle_dir = '~/.cache/vimfiles'
-
-" 设置 SpaceVim 的配色方案
-let g:spacevim_colorscheme = 'jellybeans'
-
-" 设置你想使用的插件管理器, 默认为 dein.vim
-let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug
-
-" 使用空格键为导航键 ``
-let mapleader = "\"
-
-" 设置快捷窗口导航键(leader [Window]), 默认为 `s`
-let g:spacevim_windows_leader = 's'
-
-" 设置 unite 工作流程快捷导航键(shortcut leader [Unite]), 默认为 `f`
-let g:spacevim_unite_leader = 'f'
-
-" 在默认情况下,个别语言插件未加载. 可以按照下面的方法来更改.
-" 下面的更改完成后, go语言的开发工具就会被加载.
-call SpaceVim#layers#load('lang#go')
-
-" 加载用户界面层
-call SpaceVim#layers#load('ui')
-
-" 如果你不喜欢练习插件的话, 你可以按照下面那样定义变量,来关闭它们:
-let g:spacevim_disabled_plugins=[
-\ ['junegunn/fzf.vim'],
-\ ]
-
-" 你可以按照下面的设置来添加默认的插件:
-let g:spacevim_custom_plugins = [
-\ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
-\ ['wsdjeg/GitHub.vim'],
-\ ]
-
-" 设置gui字体(guifont)
-let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
+call SpaceVim#custom#SPCGroupName(['G'], '+TestGroup')
+call SpaceVim#custom#SPC('nore', ['G', 't'], 'echom 1', 'echomessage 1', 1)
```
-更加详细的 SpaceVim 选项可以查阅 :h SpaceVim.
+### Vim 兼容模式
-### 概念
+以下为 SpaceVim 中与 Vim 默认情况下的一些差异,而在兼容模式下,
+以下所有差异将不存在,可以通过设置 `vimcompatible = true` 来启用 Vim 兼容模式。
-#### 临时快捷键
+- Noraml 模式下 `s` 按键不再删除光标下的字符,在 SpaceVim 中,
+ 它是 `Windows` 快捷键的前缀(可以在配置文件中设置成其他按键)。
+ 如果希望回复 `s` 按键原先的功能,可以通过 `windows_leader = ""` 使用一个空字符串来禁用这一功能。
+
+- Normal 模式下 `,` 按键在 Vim 默认情况下是重复上一次的 `f`、`F`、`t` 和 `T` 按键,但在 SpaceVim 中默认被用作为语言专用的前缀键。如果需要禁用此选项,
+ 可设置 `enable_language_specific_leader = false`。
+
+- Normal 模式下 `q` 按键在 SpaceVim 中被设置为了智能关闭窗口,
+ 即大多数情况下按下 `q` 键即可关闭当前窗口。可以通过 `windows_smartclose = ""` 使用一个空字符串来禁用这一功能,或修改为其他按键。
+
+- 命令行模式下 `` 按键在 SpaceVim 中被修改为了移动光标至命令行行首。
+
+### 私有模块
+
+这一部分简单介绍了模块的组成,更多关于新建模块的内容可以阅读
+SpaceVim 的[模块首页](layers/)。
+
+**目的**
+
+使用模块的方式来组织和管理插件,将相关功能的插件组织成一个模块,启用/禁用效率更加高。同时也节省了很多寻找插件和配置插件的时间。
+
+**结构**
+
+在 SpaceVim 中,一个模块是一单个 Vim 文件,比如,`autocomplete` 模块存储在 `autoload/SpaceVim/layers/autocomplete.vim`,在这个文件内有以下几种公共函数:
+
+- `SpaceVim#layers#autocomplete#plugins()`: 返回该模块插件列表
+- `SpaceVim#layers#autocomplete#config()`: 模块相关设置
+- `SpaceVim#layers#autocomplete#set_variable()`: 模块选项设置函数
+
+## 概念
+
+**临时快捷键菜单**
SpaceVim 根据需要定义了很多临时快捷键,这将避免需要重复某些操作时,过多按下 `SPC` 前置键。当临时快捷键启用时,会在窗口下方打开一个快捷键介绍窗口,提示每一临时快捷键的功能。此外一些格外的辅助信息也将会体现出来。
@@ -356,45 +243,53 @@ SpaceVim 根据需要定义了很多临时快捷键,这将避免需要重复
![Move Text Transient State](https://user-images.githubusercontent.com/13142418/28489559-4fbc1930-6ef8-11e7-9d5a-716fe8dbb881.png)
-### 优雅的界面
+## 优雅的界面
-SpaceVim 集成了多种使用UI插件,如常用的文件树、语法树等插件,配色主题默认采用的是 gruvbox。
+SpaceVim 集成了多种使用 UI 插件,如常用的文件树、语法树等插件,配色主题默认采用的是 gruvbox。
-![UI](https://cloud.githubusercontent.com/assets/13142418/22506638/84705532-e8bc-11e6-8b72-edbdaf08426b.png)
+### 颜色主题
-#### 主题
+默认的颜色主题采用的是 [gruvbox](https://github.com/morhetz/gruvbox)。这一主题有深色和浅色两种。关于这一主题一些详细的配置可以阅读 `:h gruvbox`。
-SpaceVim 默认的颜色主题采用的是 [gruvbox](https://github.com/morhetz/gruvbox)。这一主题有深色和浅色两种。关于这一主题一些详细的配置可以阅读 :h gruvbox.
+如果需要修改 SpaceVim 的主题,可以在 `~/.SpaceVim.d/init.toml` 中修改 `colorscheme`。例如,使用 Vim 自带的内置主题 `desert`:
-如果需要修改 SpaceVim 的主题,可以在 `~/.SpaceVim.d/init.vim` 中修改 `g:g:spacevim_colorscheme`。例如,使用 [vim-one with dark colorscheme](https://github.com/rakr/vim-one)
-
-```vim
-let g:spacevim_colorscheme = 'one'
-let g:spacevim_colorscheme_bg = 'dark'
+```toml
+[options]
+ colorscheme = "desert"
+ colorscheme_bg = "dark"
```
-| 快捷键 | 描述 |
-| ------------------ | -------------------- |
-| SPC T n | 切换至下一个随机主题 |
-| SPC T s | 通过 Unite 选择主题 |
+| 快捷键 | 描述 |
+| --------- | -------------------- |
+| `SPC T n` | 切换至下一个随机主题 |
+| `SPC T s` | 通过 Unite 选择主题 |
-可以在[主题模块](http://spacevim.org/layers/colorscheme/)中查看 SpaceVim 支持的所有主题。
+可以在[主题模块](layers/colorscheme/)中查看 SpaceVim 支持的所有主题。
**注意**:
-SpaceVim 在终端下默认使用了真色,因此使用之前需要确认下你的终端是否支持真色,可以阅读 [Colours in terminal](https://gist.github.com/XVilka/8346728) 了解根多关于真色的信息。
+SpaceVim 在终端下默认使用了真色,因此使用之前需要确认下你的终端是否支持真色。
+可以阅读 [Colours in terminal](https://gist.github.com/XVilka/8346728) 了解根多关于真色的信息。
-#### 字体
+如果你的终端不支持真色,可以在 SpaceVim 用户配置 `[options]` 中禁用真色支持:
-在 SpaceVim 中默认的字体是 DejaVu Sans Mono for Powerline. 如果你也喜欢这一字体,建议将这一字体安装到系统中。如果需要修改 SpaceVim 的字体,可以在用户配置文件中修改 `g:spacevim_guifont`,默认值为:
+```toml
+ guicolors = false
+```
-```vim
-let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
+### 字体
+
+在 SpaceVim 中默认的字体是 DejaVu Sans Mono for Powerline.
+如果你也喜欢这一字体,建议将这一字体安装到系统中。
+如果需要修改 SpaceVim 的字体,可以在用户配置文件中修改 `guifont`,默认值为:
+
+```toml
+ guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
```
如果指定的字体不存在,将会使用系统默认的字体,此外,这一选项在终端下是无效的,终端下修改字体,需要修改终端自身配置。
-#### 界面元素切换
+### 界面元素切换
大多数界面元素可以通过快捷键来隐藏或者显示(这一组快捷键以 `t` 和 `T` 开头):
@@ -416,24 +311,7 @@ let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
| `SPC T m` | 显示/隐藏菜单栏 |
| `SPC T t` | 显示/隐藏工具栏 |
-#### 状态栏 & 标签栏
-
-状态栏和工具栏是高度定制的模块,提供了如下特性:
-
-- 展示 buffer 或者 Tab 的序列号
-- 展示当前模式
-- 展示 git 相关信息
-- 展示语法检查信息
-- 展示 trailing line 的行号
-- 展示当前 SpaceVim 已启用的功能
-- 展示文件信息
-- 展示搜索结果序号
-
-| 快捷键 | 描述 |
-| ----------- | ------------------ |
-| `SPC [1-9]` | 跳至制定序号的窗口 |
-
-##### 状态栏
+### 状态栏
`core#statusline` 模块提供了一个高度定制的状态栏,提供如下特性,这一模块的灵感来自于 spacemacs 的状态栏。
@@ -443,6 +321,11 @@ let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
- 显示/隐藏语法检查信息
- 显示/隐藏电池信息
- 显示/隐藏 SpaceVim 功能启用状态
+- 显示版本控制信息(需要 `git` 和 `VersionControl` 模块)
+
+| 快捷键 | 描述 |
+| ----------- | ------------------ |
+| `SPC [1-9]` | 跳至制定序号的窗口 |
默认主题 gruvbox 的状态栏颜色和模式对照表:
@@ -470,26 +353,20 @@ let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
| `SPC t m T` | 显示/隐藏状态栏 |
| `SPC t m v` | 显示/隐藏版本控制信息 |
-**Powerline 字体安装:**
+**nerd 字体安装:**
-SpaceVim 默认使用 [DejaVu Sans Mono for Powerline](https://github.com/powerline/fonts/tree/master/DejaVuSansMono), 为了使状态栏得以正常显示,你需要安装这一字体。如果需要在状态栏中展示其他类型的分割符,则需要安装 [powerline extra symbols](https://github.com/ryanoasis/powerline-extra-symbols).
+SpaceVim 默认使用 nerd fonts,可参阅其安装指南进行安装。
**语法检查信息:**
状态栏中语法检查信息元素如果被启用了,当语法检查结束后,会在状态栏中展示当前语法错误和警告的数量。
-TODO: add a picture
-
-_语法检查信息_
-
**搜索结果信息:**
当使用 `/` 或 `?` 进行搜索时,或当按下 `n` 或 `N` 后,搜索结果序号将被展示在状态栏中,类似于 `20/22` 显示搜索结果总数以及当前结果的序号。具体的效果图如下:
![search status](https://cloud.githubusercontent.com/assets/13142418/26313080/578cc68c-3f3c-11e7-9259-a27419d49572.png)
-_search index in statusline_
-
**电池状态信息:**
_acpi_ 可展示电池电量剩余百分比.
@@ -506,10 +383,10 @@ _acpi_ 可展示电池电量剩余百分比.
**状态栏分割符:**
-可通过使用 `g:spacevim_statusline_separator` 来定制状态栏分割符,例如使用非常常用的方向箭头作为状态栏分割符:
+可通过使用 `statusline_separator` 来定制状态栏分割符,例如使用非常常用的方向箭头作为状态栏分割符:
-```vim
-let g:spacevim_statusline_separator = 'arrow'
+```toml
+ statusline_separator = 'arrow'
```
SpaceVim 所支持的分割符以及截图如下:
@@ -524,19 +401,77 @@ SpaceVim 所支持的分割符以及截图如下:
**SpaceVim 功能模块:**
-功能模块可以通过 `SPC t m m` 快捷键显示或者隐藏。默认使用 Unicode 字符,可通过设置 `let g:spacevim_statusline_unicode_symbols = 0` 来启用 ASCII 字符。(或许在终端中无法设置合适的字体时,可使用这一选项)。
+功能模块可以通过 `SPC t m m` 快捷键显示或者隐藏。默认使用 Unicode 字符,可通过设置 `statusline_unicode_symbols = false` 来启用 ASCII 字符。(或许在终端中无法设置合适的字体时,可使用这一选项)。
状态栏中功能模块内的字符显示与否,同如下快捷键功能保持一致:
-| 快捷键 | Unicode | ASCII | 功能 |
-| --------- | ------- | ----- | ---------------- |
-| `SPC t 8` | ⑧ | 8 | 高亮80列之后信息 |
-| `SPC t f` | ⓕ | f | 高亮第80列 |
-| `SPC t s` | ⓢ | s | 语法检查 |
-| `SPC t S` | Ⓢ | S | 拼写检查 |
-| `SPC t w` | ⓦ | w | 行尾空格检查 |
+| 快捷键 | Unicode | ASCII | 功能 |
+| --------- | ------- | ----- | -------------------- |
+| `SPC t 8` | ⑧ | 8 | 高亮指定列后所有字符 |
+| `SPC t f` | ⓕ | f | 高亮指定列字符 |
+| `SPC t s` | ⓢ | s | 语法检查 |
+| `SPC t S` | Ⓢ | S | 拼写检查 |
+| `SPC t w` | ⓦ | w | 行尾空格检查 |
-##### 标签栏
+**状态栏的颜色**
+
+当前版本的状态栏支持 `gruvbox`/`molokai`/`nord`/`one`/`onedark`,如果你需要使用其他主题,
+可以通过以下木板来设置:
+
+```vim
+" the theme colors should be
+" [
+" \ [ a_guifg, a_guibg, a_ctermfg, a_ctermbg],
+" \ [ b_guifg, b_guibg, b_ctermfg, b_ctermbg],
+" \ [ c_guifg, c_guibg, c_ctermfg, c_ctermbg],
+" \ [ z_guibg, z_ctermbg],
+" \ [ i_guifg, i_guibg, i_ctermfg, i_ctermbg],
+" \ [ v_guifg, v_guibg, v_ctermfg, v_ctermbg],
+" \ [ r_guifg, r_guibg, r_ctermfg, r_ctermbg],
+" \ [ ii_guifg, ii_guibg, ii_ctermfg, ii_ctermbg],
+" \ [ in_guifg, in_guibg, in_ctermfg, in_ctermbg],
+" \ ]
+" group_a: window id
+" group_b/group_c: stausline sections
+" group_z: empty area
+" group_i: window id in insert mode
+" group_v: window id in visual mode
+" group_r: window id in select mode
+" group_ii: window id in iedit-insert mode
+" group_in: windows id in iedit-normal mode
+function! SpaceVim#mapping#guide#theme#gruvbox#palette() abort
+ return [
+ \ ['#282828', '#a89984', 246, 235],
+ \ ['#a89984', '#504945', 239, 246],
+ \ ['#a89984', '#3c3836', 237, 246],
+ \ ['#665c54', 241],
+ \ ['#282828', '#83a598', 235, 109],
+ \ ['#282828', '#fe8019', 235, 208],
+ \ ['#282828', '#8ec07c', 235, 108],
+ \ ['#282828', '#689d6a', 235, 72],
+ \ ['#282828', '#8f3f71', 235, 132],
+ \ ]
+endfunction
+```
+
+这一模板是 gruvbox 主题的,如果你需要在切换主题是,状态栏都使用同一种颜色主题,
+可以设置 `custom_color_palette`:
+
+```toml
+custom_color_palette = [
+ ["#282828", "#a89984", 246, 235],
+ ["#a89984", "#504945", 239, 246],
+ ["#a89984", "#3c3836", 237, 246],
+ ["#665c54", 241],
+ ["#282828", "#83a598", 235, 109],
+ ["#282828", "#fe8019", 235, 208],
+ ["#282828", "#8ec07c", 235, 108],
+ ["#282828", "#689d6a", 235, 72],
+ ["#282828", "#8f3f71", 235, 132],
+ ]
+```
+
+### 标签栏
如果只有一个Tab, Buffers 将被罗列在标签栏上,每一个包含:序号、文件类型图标、文件名。如果有不止一个 Tab, 那么所有 Tab 将被罗列在标签栏上。标签栏上每一个 Tab 或者 Baffer 可通过快捷键 ` number` 进行快速访问,默认的 `` 是 `\`。
@@ -552,51 +487,213 @@ SpaceVim 所支持的分割符以及截图如下:
| ` 8` | 跳至标签栏序号 8 |
| ` 9` | 跳至标签栏序号 9 |
-### 手册
+标签栏上也支持鼠标操作,左键可以快速切换至该序号,中键删除该标签。该特性只支持 neovim,并且需要 `has('tablineat')` 特性。
-#### 自动补全
+| 按键 | 描述 |
+| ---------------- | ------------------ |
+| `` | 掉至标签该序号标签 |
+| `` | 删除该序号标签 |
-##### Unite/Denite
+**标签管理器**
-请阅读 unite 和 denite 文档: `:h unite` 和 `:h denite`。
+可使用 `SPC t t` 打开内置的标签管理器,标签管理器内的快捷键如下:
-##### Unite/Denite buffer 中的快捷键
+| 按键 | 描述 |
+| --------- | ------------------------ |
+| `o` | 展开或关闭标签目录 |
+| `` | 跳至光标所对应的标签窗口 |
-| 快捷键 | 模式 | 功能描述 |
-| ---------------- | ------------- | ---------------------- |
-| `Ctrl`+`h/k/l/r` | Normal | 无效 |
-| `Ctrl`+`l` | Normal | 刷新界面 |
-| `Tab` | Insert | 下一结果 |
-| `Tab` | Normal | 选择操作 |
-| `Shift` + `Tab` | Insert | 上一结果 |
-| `Space` | Normal | 标记当前结果 |
-| `Enter` | Normal | 执行默认操作 |
-| `Ctrl`+`v` | Normal | 在分割窗口中打开 |
-| `Ctrl`+`s` | Normal | 在垂直分割窗口打开 |
-| `Ctrl`+`t` | Normal | 在新 Tab 中打开 |
-| `Ctrl` + `g` | Normal | 推出 Unite/Denite |
-| `jk` | Insert | 离开 Insert 模式 |
-| `r` | Normal | 重命名或者替换搜索内容 |
-| `Ctrl`+`z` | Normal/insert | 切换窗口布局 |
-| `Ctrl`+`w` | Insert | 删除前一单词 |
+## 常规快捷键
-#### 交互
+### 窗口管理器
-##### 快捷键
+窗口管理器快捷键只可以在 Normal 模式下使用,默认的前缀按键为 `s`,可以在配置文件中通过修改
+SpaceVim 选项 `window_leader` 的值来设为其他按键:
-###### 快捷键导航
+| 按键 | 描述 |
+| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `q` | Smart buffer close |
+| `s`+`p` | Split nicely |
+| `s`+`v` | :split |
+| `s`+`g` | :vsplit |
+| `s`+`t` | Open new tab (:tabnew) |
+| `s`+`o` | Close other windows (:only) |
+| `s`+`x` | Remove buffer, leave blank window |
+| `s`+`q` | Remove current buffer, left buffer in the tabline will be displayed. If there is no buffer on the left, the right buffer will be displayed; if this is the last buffer in the tabline, then an empty buffer will be displayed. |
+| `s`+`Q` | Close current buffer (:close) |
+| `Tab` | Next window or tab |
+| `Shift`+`Tab` | Previous window or tab |
+| ``+`sv` | Split with previous buffer |
+| ``+`sg` | Vertically split with previous buffer |
-当 Normal 模式下按下前缀键后出现输入延迟,则会在屏幕下方打开一个快捷键导航窗口,提示当前可用的快捷键及其功能描述,目前支持的前缀键有:`[SPC]`、`[Window]`、`[Denite]`、`[Unite]`、``、`g`、`z`。
+SpaceVim has mapped normal `q` as smart buffer close, the normal func of `q`
+can be get by ` q r`
+
+| 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 |
+| `` + num | Normal | Jump to the buffer with the num index |
+| `` + num | Normal | Jump to the buffer with the num index, this only works in neovim |
+| `` + `h`/`` | Normal | Jump to left buffer in the tabline, this only works in neovim |
+| `` + `l`/`` | Normal | Jump to Right buffer in the tabline, this only works in neovim |
+| ``+`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 |
+
+### Native functions
+
+| Key | Mode | Action |
+| ------------------ | :----: | -------------------------------- |
+| `` + `qr` | Normal | Same as native `q` |
+| `` + `qr/` | Normal | Same as native `q/`, open cmdwin |
+| `` + `qr?` | Normal | Same as native `q?`, open cmdwin |
+| `` + `qr:` | Normal | Same as native `q:`, open cmdwin |
+
+### Bookmarks management
+
+| 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 |
+
+As SpaceVim use above bookmarks mappings, so you can not use `a`, `m`, `n`, `p` or `i` registers to mark current position, but other registers should works will. if you really need to use these registers, you can add `nnoremap m m` to your custom configuration, then you use use `a` registers via `\ma`
+
+### Fuzzy finder
+
+SpaceVim provides five kinds of fuzzy finder, each of them is configured in a layer(`unite`, `denite`, `leaderf`, `ctrlp` and `fzf` layer).
+These layers have the same key bindings and features. But they need different dependencies.
+
+User only need to load one of these layers, then will be able to get these
+features.
+
+**Key bindings**
+
+| Key bindings | Discription |
+| -------------------- | ----------------------------- |
+| ` f ` | Fuzzy find menu:CustomKeyMaps |
+| ` f e` | Fuzzy find register |
+| ` f f` | Fuzzy find file |
+| ` f h` | Fuzzy find history/yank |
+| ` f j` | Fuzzy find jump, change |
+| ` f l` | Fuzzy find location list |
+| ` f m` | Fuzzy find output messages |
+| ` f o` | Fuzzy find outline |
+| ` f q` | Fuzzy find quick fix |
+| ` f r` | Resumes Unite window |
+
+But in current version of SpaceVim, leaderf/ctrlp and fzf layer has not be finished.
+
+| Feature | unite | denite | leaderf | ctrlp | fzf |
+| ------------------- | ------- | ------- | ------- | ------- | ------- |
+| menu: CustomKeyMaps | **yes** | **yes** | no | no | no |
+| register | **yes** | **yes** | no | **yes** | **yes** |
+| file | **yes** | **yes** | **yes** | **yes** | **yes** |
+| yank history | **yes** | **yes** | no | no | **yes** |
+| jump | **yes** | **yes** | no | **yes** | **yes** |
+| location list | **yes** | **yes** | no | no | **yes** |
+| outline | **yes** | **yes** | **yes** | **yes** | **yes** |
+| message | **yes** | **yes** | no | no | **yes** |
+| quickfix list | **yes** | **yes** | no | **yes** | **yes** |
+| resume windows | **yes** | **yes** | no | no | no |
+
+**Key bindings within fuzzy finder buffer**
+
+| key bindings | Mode | description |
+| --------------------- | ------ | ----------------------------------------- |
+| `Tab`/`` | - | Select next line |
+| `Shift + Tab`/`` | - | Select previous line |
+| `jk` | Insert | Leave Insert mode (Only for denite/unite) |
+| `Ctrl`+`w` | Insert | Delete backward path |
+| `Enter` | - | Run default action |
+| `Ctrl`+`s` | - | Open in a split |
+| `Ctrl`+`v` | - | Open in a vertical split |
+| `Ctrl`+`t` | - | Open in a new tab |
+| `Ctrl`+`g` | - | Exit unite |
+
+**Denite/Unite normal mode key bindings**
+
+| key bindings | Mode | description |
+| ---------------- | ------------- | ------------------------------------ |
+| `Ctrl`+`h/k/l/r` | Normal | Un-map |
+| `Ctrl`+`l` | Normal | Redraw |
+| `Tab` | Normal | Select actions |
+| `Space` | Normal | Toggle mark current candidate, up |
+| `r` | Normal | Replace ('search' profile) or rename |
+| `Ctrl`+`z` | Normal/insert | Toggle transpose window |
+
+The above key bindings only are part of fuzzy finder layers, please read the layer's documentation.
+
+### 交互
+
+#### 快捷键
+
+**快捷键导航**
+
+当 Normal 模式下按下前缀键后出现输入延迟,则会在屏幕下方打开一个快捷键导航窗口,提示当前可用的快捷键及其功能描述,目前支持的前缀键有:`[SPC]`、`[Window]`、``、`g`、`z`。
这些前缀的按键为:
-| 前缀名称 | 用户选项以及默认值 | 描述 |
-| ---------- | --------------------------------- | --------------------------- |
-| `[SPC]` | 空格键 | SpaceVim 默认前缀键 |
-| `[Window]` | `g:spacevim_windows_leader` / `s` | SpaceVim 默认窗口前缀键 |
-| `[denite]` | `g:spacevim_denite_leader` / `F` | SpaceVim 默认 Denite 前缀键 |
-| `[unite]` | `g:spacevim_unite_leader` / `f` | SpaceVim 默认 Unite 前缀键 |
-| `` | `mapleader` / `\\` | Vim/neovim 默认前缀键 |
+| 前缀名称 | 用户选项以及默认值 | 描述 |
+| ---------- | ---------------------- | ----------------------- |
+| `[SPC]` | 空格键 | SpaceVim 默认前缀键 |
+| `[Window]` | `windows_leader` / `s` | SpaceVim 默认窗口前缀键 |
+| `` | 默认的 Vim leader 键 | Vim/neovim 默认前缀键 |
默认情况下,快捷键导航将在输入延迟超过 1000ms 后打开,你可以通过修改 vim 的 `'timeoutlen'` 选项来修改成适合自己的延迟时间长度。
@@ -618,7 +715,7 @@ SpaceVim 所支持的分割符以及截图如下:
call SpaceVim#custom#SPC('nnoremap', ['f', 't'], 'echom "hello world"', 'test custom SPC', 1)
```
-###### 通过 Unite/Denite 浏览快捷键
+**通过 Unite/Denite 浏览快捷键**
可以通过 `SPC ?` 使用 Unite 将当前快捷键罗列出来。然后可以输入快捷键按键字母或者描述,Unite 可以通过模糊匹配,并展示结果。
@@ -626,7 +723,7 @@ call SpaceVim#custom#SPC('nnoremap', ['f', 't'], 'echom "hello world"', 'test cu
使用 `` 键或者上下方向键选择你需要的快捷键,回车将执行这一快捷键。
-##### 获取帮助信息
+#### 获取帮助信息
Denite/Unite 是一个强大的信息筛选浏览器,这类似于 emacs 中的 [Helm](https://github.com/emacs-helm/helm)。以下这些快捷键将帮助你快速获取需要的帮助信息:
@@ -643,32 +740,33 @@ Denite/Unite 是一个强大的信息筛选浏览器,这类似于 emacs 中的
| --------- | ------------------------------- |
| `SPC h I` | 根据模板展示 Issue 所必须的信息 |
-##### 可用模块
+#### 可用模块
-所有可用模块可以通过命令 `SPLayer -l` 或者快捷键 `SPC h l` 来展示。
+所有可用模块可以通过命令 `:SPLayer -l` 或者快捷键 `SPC h l` 来展示。
-###### 可用的插件
+**可用的插件**
可通过快捷键 ` l p` 列出所有已安装的插件,支持模糊搜索,回车将使用浏览器打开该插件的官网。
-###### 添加用户自定义插件
+**添加用户自定义插件**
-如果添加来自于 github.com 的插件,可以 `用户名/仓库名` 这一格式,将该插件添加到 `g:spacevim_custom_plugins`,示例如下:
+如果添加来自于 github.com 的插件,可以 `用户名/仓库名` 这一格式,将该插件添加到 `custom_plugins`,示例如下:
-```vim
-let g:spacevim_custom_plugins = [
- \ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
- \ ['wsdjeg/GitHub.vim'],
- \ ]
+```toml
+# custom plugins {{{
+[[custom_plugins]]
+name = 'lilydjwg/colorizer'
+merged = 0
+# }}}
```
-##### 界面元素显示切换
+#### 界面元素显示切换
所有的界面元素切换快捷键都是已 `[SPC] t` 或者 `[SPC] T` 开头的,你可以在快捷键导航中查阅所有快捷键。
-#### 常规操作
+### 常规操作
-##### 光标移动
+#### 光标移动
光标的移动默认采用 vi 的默认形式:`hjkl`。
@@ -684,7 +782,7 @@ let g:spacevim_custom_plugins = [
| `SPC j $` | 跳至行尾(并且标记原始位置) |
| `SPC t -` | 锁定光标在屏幕中间(TODO) |
-##### 快速跳转
+#### 使用 vim-easymotion 快速跳转
###### 快速跳到网址 (TODO)
@@ -694,7 +792,7 @@ let g:spacevim_custom_plugins = [
| ------------------------------- | ---------------- |
| `SPC j u`/(`o` for help buffer) | 快速跳到/打开url |
-##### 常用的成对快捷键
+#### 常用的成对快捷键
| 快捷键 | 描述 |
| ------- | ---------------------------------------------- |
@@ -720,11 +818,11 @@ let g:spacevim_custom_plugins = [
| `] p` | 粘贴至当前行下方 |
| `g p` | 选择粘贴的区域 |
-##### 跳转,合并,拆分
+#### 跳转,合并,拆分
以 `SPC j` 为前缀的快捷键主要用作:跳转(jumping),合并(joining),拆分(splitting)。
-###### 跳转
+##### 跳转
| 快捷键 | 描述 |
| --------- | ------------------------------------------------ |
@@ -745,7 +843,7 @@ let g:spacevim_custom_plugins = [
| `SPC j v` | 跳至某个 vim 函数的定义处 (TODO) |
| `SPC j w` | 跳至 Buffer 中某个单词 (easymotion) |
-###### 合并,拆分
+##### 合并,拆分
| 快捷键 | 描述 |
| --------- | -------------------------------------------- |
@@ -756,9 +854,9 @@ let g:spacevim_custom_plugins = [
| `SPC j s` | 从光标处进行拆分 String |
| `SPC j S` | 从光标处进行拆分 String,并插入对齐的空行 |
-##### 窗口操作
+#### 窗口操作
-###### 窗口操作常用快捷键
+##### 窗口操作常用快捷键
每一个窗口,都有一个编号,该编号显示在状态栏的最前端,可通过 `SPC 编号` 进行快速窗口跳转。
@@ -814,9 +912,9 @@ let g:spacevim_custom_plugins = [
| `SPC w w` | 切换至前一窗口 |
| `SPC w W` | 选择一个窗口 |
-##### 文件和 Buffer 操作
+#### 文件和 Buffer 操作
-###### Buffer 操作相关快捷键
+##### Buffer 操作相关快捷键
Buffer 操作相关快捷键都是已 `SPC b` 为前缀的:
@@ -844,7 +942,7 @@ Buffer 操作相关快捷键都是已 `SPC b` 为前缀的:
| `SPC b Y` | 将整个 buffer 复制到剪切板 |
| `z f` | Make current function or comments visible in buffer as much as possible (TODO) |
-###### 新建空白 buffer
+##### 新建空白 buffer
| 快捷键 | 描述 |
| ----------- | ------------------------------------------- |
@@ -854,11 +952,11 @@ Buffer 操作相关快捷键都是已 `SPC b` 为前缀的:
| `SPC b N l` | 在右侧新建一个窗口,并在其中新建空白 buffer |
| `SPC b N n` | 在当前窗口新建一个空白 buffer |
-###### 特殊 buffer
+##### 特殊 buffer
在 SpaceVim 中,有很多特殊的 buffer,这些 buffer 是由插件或者 SpaceVim 自身新建的,并不会被列出。
-###### 文件操作相关快捷键
+##### 文件操作相关快捷键
文件操作相关的快捷键都是以 `SPC f` 为前缀的:
@@ -881,7 +979,7 @@ Buffer 操作相关快捷键都是已 `SPC b` 为前缀的:
| `SPC f T` | 打开文件树侧栏 |
| `SPC f y` | 复制当前文件,并且显示当前文件路径 |
-###### Vim 和 SpaceVim 相关文件
+##### Vim 和 SpaceVim 相关文件
SpaceVim 相关的快捷键均以 `SPC f v` 为前缀,这便于快速访问 SpaceVim 的配置文件:
@@ -890,20 +988,22 @@ SpaceVim 相关的快捷键均以 `SPC f v` 为前缀,这便于快速访问 Sp
| `SPC f v v` | 复制并显示当前 SpaceVim 的版本 |
| `SPC f v d` | 打开 SpaceVim 的用户配置文件 |
-##### 文件树
+#### 文件树
SpaceVim 使用 vimfiler 作为默认的文件树插件,默认的快捷键是 `F3`, SpaceVim 也提供了另外一组快捷键 `SPC f t` 和 `SPC f T` 来打开文件树,如果需要使用 nerdtree 作为默认文件树,需要设置:
-```vim
-" the default value is vimfiler
-let g:spacevim_filemanager = 'nerdtree'
+```toml
+# 默认值为 vimfiler
+filemanager = "nerdtree"
```
-SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性需要分析文件夹内容,会使得文件树插件比较慢,因此默认没有打开,如果需要使用这一特性,可向配置文件中加入 `let g:spacevim_enable_vimfiler_gitstatus = 1`,启用后的截图如下:
+SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性需要分析文件夹内容,
+会使得文件树插件比较慢,因此默认没有打开,如果需要使用这一特性,
+可向配置文件中加入 `enable_vimfiler_gitstatus = true`,启用后的截图如下:
![file-tree](https://user-images.githubusercontent.com/13142418/26881817-279225b2-4bcb-11e7-8872-7e4bd3d1c84e.png)
-###### 文件树中的常用操作
+##### 文件树中的常用操作
文件树中主要以 `hjkl` 为核心,这类似于 [vifm](https://github.com/vifm) 中常用的快捷键:
@@ -929,7 +1029,7 @@ SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性
| `V` | 标记该文件 |
| `Ctrl`+`r` | 刷新页面 |
-###### 文件树中打开文件
+##### 文件树中打开文件
如果只有一个可编辑窗口,则在该窗口中打开选择的文件,否则则需要制定窗口来打开文件:
@@ -994,53 +1094,52 @@ SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性
### 以 `z` 开头的命令
当你不记得按键映射时, 你可以在普通模式下输入前缀 `z` , 然后你会看到所有以 `z` 为前缀的函数映射.
-| Key Binding | Description |
-\| ----------- \| -------------------------------------------- \|
-\| `z` | scroll screen N characters to left |
-\| `z+` | cursor to screen top line N |
-\| `z-` | cursor to screen bottom line N |
-\| `z.` | cursor line to center |
-\| `z` | cursor line to top |
-\| `z=` | spelling suggestions |
-\| `zA` | toggle folds recursively |
-\| `zC` | close folds recursively |
-\| `zD` | delete folds recursively |
-\| `zE` | eliminate all folds |
-\| `zF` | create a fold for N lines |
-\| `zG` | mark good spelled(update internal-wordlist) |
-\| `zH` | scroll half a screenwidth to the right |
-\| `zL` | scroll half a screenwidth to the left |
-\| `zM` | set `foldlevel` to zero |
-\| `zN` | set `foldenable` \|
-\| `zO` | open folds recursively |
-\| `zR` | set `foldlevel` to deepest fold |
-\| `zW` | mark wrong spelled |
-\| `zX` | re-apply `foldleve` \|
-\| `z^` | cursor to screen bottom line N |
-\| `za` | toggle a fold |
-\| `zb` | redraw, cursor line at bottom |
-\| `zc` | close a fold |
-\| `zd` | delete a fold |
-\| `ze` | right scroll horizontally to cursor position |
-\| `zf` | create a fold for motion |
-\| `zg` | mark good spelled |
-\| `zh` | scroll screen N characters to right |
-\| `zi` | toggle foldenable |
-\| `zj` | mode to start of next fold |
-\| `zk` | mode to end of previous fold |
-\| `zl` | scroll screen N characters to left |
-\| `zm` | subtract one from `foldlevel` \|
-\| `zn` | reset `foldenable` \|
-\| `zo` | open fold |
-\| `zr` | add one to `foldlevel` \|
-\| `zs` | left scroll horizontally to cursor position |
-\| `zt` | cursor line at top of window |
-\| `zv` | open enough folds to view cursor line |
-\| `zx` | re-apply foldlevel and do "zV" |
-\| `zz` | smart scroll |
-\| `z` | scroll screen N characters to right |
-### 自动保存
+| Key Binding | Description |
+| ----------- | -------------------------------------------- |
+| `z` | scroll screen N characters to left |
+| `z+` | cursor to screen top line N |
+| `z-` | cursor to screen bottom line N |
+| `z.` | cursor line to center |
+| `z` | cursor line to top |
+| `z=` | spelling suggestions |
+| `zA` | toggle folds recursively |
+| `zC` | close folds recursively |
+| `zD` | delete folds recursively |
+| `zE` | eliminate all folds |
+| `zF` | create a fold for N lines |
+| `zG` | mark good spelled(update internal-wordlist) |
+| `zH` | scroll half a screenwidth to the right |
+| `zL` | scroll half a screenwidth to the left |
+| `zM` | set `foldlevel` to zero |
+| `zN` | set `foldenable` |
+| `zO` | open folds recursively |
+| `zR` | set `foldlevel` to deepest fold |
+| `zW` | mark wrong spelled |
+| `zX` | re-apply `foldlevel` |
+| `z^` | cursor to screen bottom line N |
+| `za` | toggle a fold |
+| `zb` | redraw, cursor line at bottom |
+| `zc` | close a fold |
+| `zd` | delete a fold |
+| `ze` | right scroll horizontally to cursor position |
+| `zf` | create a fold for motion |
+| `zg` | mark good spelled |
+| `zh` | scroll screen N characters to right |
+| `zi` | toggle foldenable |
+| `zj` | mode to start of next fold |
+| `zk` | mode to end of previous fold |
+| `zl` | scroll screen N characters to left |
+| `zm` | subtract one from `foldlevel` |
+| `zn` | reset `foldenable` |
+| `zo` | open fold |
+| `zr` | add one to `foldlevel` |
+| `zs` | left scroll horizontally to cursor position |
+| `zt` | cursor line at top of window |
+| `zv` | open enough folds to view cursor line |
+| `zx` | re-apply foldlevel and do "zV" |
+| `zz` | smart scroll |
+| `z` | scroll screen N characters to right |
### 搜索
@@ -1112,6 +1211,23 @@ Notes:
| `SPC s r r` | rg |
| `SPC s r R` | rg with default input |
+##### 搜索当前文件所在的文件夹
+
+| Key Binding | Description |
+| ----------- | ----------------------------------------------------------- |
+| `SPC s d` | searching in buffer directory with default tool |
+| `SPC s D` | searching in buffer directory cursor word with default tool |
+| `SPC s a d` | searching in buffer directory with ag |
+| `SPC s a D` | searching in buffer directory cursor word with ag |
+| `SPC s g d` | searching in buffer directory with grep |
+| `SPC s g D` | searching in buffer directory cursor word with grep |
+| `SPC s k d` | searching in buffer directory with ack |
+| `SPC s k D` | searching in buffer directory cursor word with ack |
+| `SPC s r d` | searching in buffer directory with rg |
+| `SPC s r D` | searching in buffer directory cursor word with rg |
+| `SPC s t d` | searching in buffer directory with pt |
+| `SPC s t D` | searching in buffer directory cursor word with pt |
+
##### 在所有打开的缓冲区中进行搜索
| Key Binding | Description |
@@ -1194,7 +1310,7 @@ Notes:
**注意**: 为了在 vim 中使用谷歌 suggestions , 你需要在你的默认配置文件中加入 `let g:spacevim_enable_googlesuggest = 1`.
-#### 用 fly 工具进行搜索
+#### 实时代码检索
| Key Binding | Description |
| ----------- | -------------------------------------------------- |
@@ -1202,24 +1318,60 @@ Notes:
FlyGrep 缓冲区的按键绑定:
-Key Binding Description
-\-----------\\ \| -----------
-`` | close FlyGrep buffer
-`` | open file at the cursor line
-`` | move cursor line down
-`` | move cursor line up
-`` | remove last character
-`` | remove the Word before the cursor
-`` | remove the Line before the cursor
-`` | remove the Line after the cursor
-``/`` | Go to the beginning of the line
-``/`` | Go to the end of the line
+| Key Binding | Description |
+| ---------------- | --------------------------------- |
+| `` | close FlyGrep buffer |
+| `` | open file at the cursor line |
+| `` | move cursor line down |
+| `` | move cursor line up |
+| `` | remove last character |
+| `` | remove the Word before the cursor |
+| `` | remove the Line before the cursor |
+| `` | remove the Line after the cursor |
+| ``/`` | Go to the beginning of the line |
+| ``/`` | Go to the end of the line |
#### 保持高亮
SPaceVim 使用 `g:spacevim_search_highlight_persist` 保持当前搜索结果的高亮状态到下一次搜索.
同样可以通过 `SPC s c` 或者 运行 ex 命令 `:noh` 来取消搜索结果的高亮表示.
+#### Highlight current symbol
+
+SpaceVim supports highlighting of the current symbol on demand and add a transient state to easily navigate and rename these symbol.
+
+It is also possible to change the range of the navigation on the fly to:
+
+- buffer
+- function
+- visible area
+
+To Highlight the current symbol under point press `SPC s h`.
+
+Navigation between the highlighted symbols can be done with the commands:
+
+| Key Binding | Description |
+| ----------- | ---------------------------------------------------------------------------- |
+| `*` | initiate navigation transient state on current symbol and jump forwards |
+| `#` | initiate navigation transient state on current symbol and jump backwards |
+| `SPC s e` | edit all occurrences of the current symbol |
+| `SPC s h` | highlight the current symbol and all its occurrence within the current range |
+| `SPC s H` | go to the last searched occurrence of the last highlighted symbol |
+
+In highlight symbol transient state:
+
+| Key Binding | Description |
+| ------------- | ------------------------------------------------------------- |
+| `e` | edit occurrences (`*`) |
+| `n` | go to next occurrence |
+| `N`/`p` | go to previous occurrence |
+| `b` | search occurrence in all buffers |
+| `/` | search occurrence in whole project |
+| `Tab` | toggle highlight current occurrence |
+| `r` | change range (function, display area, whole buffer) |
+| `R` | go to home occurrence (reset position to starting occurrence) |
+| Any other key | leave the navigation transient state |
+
### 编辑
#### 粘贴文本
@@ -1305,6 +1457,75 @@ SPaceVim 使用 `g:spacevim_search_highlight_persist` 保持当前搜索结果
| `SPC i U 4` | insert UUIDv4 (use universal argument to insert with CID format) |
| `SPC i U U` | insert UUIDv4 (use universal argument to insert with CID format) |
+#### Increase/Decrease numbers
+
+| Key Binding | Description |
+| ----------- | ------------------------------------------------------------------- |
+| `SPC n +` | increase the number under point by one and initiate transient state |
+| `SPC n -` | decrease the number under point by one and initiate transient state |
+
+In transient state:
+
+| Key Binding | Description |
+| ------------- | -------------------------------------- |
+| `+` | increase the number under point by one |
+| `-` | decrease the number under point by one |
+| Any other key | leave the transient state |
+
+**Tips:** you can increase or decrease a value by more that once by using a prefix argument (i.e. `10 SPC n +` will add 10 to the number under point).
+
+#### Replace text with iedit
+
+SpaceVim uses powerful iedit mode to quick edit multiple occurrences of a symbol or selection.
+
+**Two new modes:** `iedit-Normal`/`iedit-Insert`
+
+The default color for iedit is `red`/`green` which is based on the current colorscheme.
+
+##### iedit states key bindings
+
+**State transitions:**
+
+| Key Binding | From | to |
+| ----------- | ---------------- | ------------ |
+| `SPC s e` | normal or visual | iedit-Normal |
+
+**In iedit-Normal mode:**
+
+`iedit-Normal` mode inherits from `Normal` mode, the following key bindings are specific to `iedit-Normal` mode.
+
+| Key Binding | Description |
+| ------------- | ------------------------------------------------------------------------------- |
+| `Esc` | go back to `Normal` mode |
+| `i` | switch to `iedit-Insert` mode, same as `i` |
+| `a` | switch to `iedit-Insert` mode, same as `a` |
+| `I` | go to the beginning of the current occurrence and switch to `iedit-Insert` mode |
+| `A` | go to the end of the current occurrence and switch to `iedit-Insert` mode |
+| ``/`h` | Move cursor to left |
+| ``/`l` | Move cursor to right |
+| `0`/`` | go to the beginning of the current occurrence |
+| `$`/`` | go to the end of the current occurrence |
+| `D` | delete the occurrences |
+| `S` | delete the occurrences and switch to iedit-Insert mode |
+| `gg` | go to first occurrence |
+| `G` | go to last occurrence |
+| `n` | go to next occurrence |
+| `N` | go to previous occurrence |
+| `p` | replace occurrences with last yanked (copied) text |
+| `` | toggle current occurrence |
+
+**In iedit-Insert mode:**
+
+| Key Binding | Description |
+| ----------- | ------------------------------ |
+| `Esc` | go back to `iedit-Normal` mode |
+| `` | Move cursor to left |
+| `` | Move cursor to right |
+| `` | delete words before cursor |
+| `` | delete words after cursor |
+
+##### Examples
+
#### 注释(Commentings)
注释(comment)通过下面的工具来处理 [nerdcommenter](https://github.com/scrooloose/nerdcommenter), 它用下面的按键来界定范围.
@@ -1378,17 +1599,47 @@ SpaceVim 中的工程通过 vim-projectionisst 和 vim-rooter 进行管理. 当
| ----------- | ----------------------------------------------------- |
| `SPC p '` | open a shell in project’s root (with the shell layer) |
+#### Searching files in project
+
+| Key Binding | Description |
+| ----------- | ---------------------------------------- |
+| `SPC p f` | find files in current project |
+| `SPC p /` | fuzzy search for text in current project |
+| `SPC p k` | kill all buffers of current project |
+| `SPC p t` | find project root |
+| `SPC p p` | list all projects |
+
+## EditorConfig
+
+SpaceVim has support for [EditorConfig](http://editorconfig.org/), a configuration file to “define and maintain consistent coding styles between different editors and IDEs.”
+
+To customize your editorconfig experience, read the [editorconfig-vim package’s documentation](https://github.com/editorconfig/editorconfig-vim/blob/master/README.md).
+
+## Vim Server
+
+SpaceVim starts a server at launch. This server is killed whenever you close your Vim windows.
+
+**Connecting to the Vim server**
+
+If you are using neovim, you need to install [neovim-remote](https://github.com/mhinz/neovim-remote), then add this to your bashrc.
+
+ export PATH=$PATH:$HOME/.SpaceVim/bin
+
+Use `svc` to open a file in the existing Vim server, or using `nsvc` to open a file in the existing neovim server.
+
+![server-and-client](https://user-images.githubusercontent.com/13142418/32554968-7164fe9c-c4d6-11e7-95f7-f6a6ea75e05b.gif)
+
## 成就
-### 错误
+**错误**
| Achievements | Account |
| --------------------------------------------------------------------- | ------------------------------------------- |
| [100th issue(issue)](https://github.com/SpaceVim/SpaceVim/issues/100) | [BenBergman](https://github.com/BenBergman) |
-### Stars, forks and watchers
+**Stars, forks and watchers**
| Achievements | Account |
| ----------------- | ----------------------------------------------- |
@@ -1400,696 +1651,4 @@ SpaceVim 中的工程通过 vim-projectionisst 和 vim-rooter 进行管理. 当
-## 特性
-
-### 优雅的用户界面
-
-- outline + filemanager + checker
-
-![awesome ui](https://cloud.githubusercontent.com/assets/13142418/22506638/84705532-e8bc-11e6-8b72-edbdaf08426b.png)
-
-### 按键绑定助记符
-
-按键绑定是用前缀组织起来的. 比如 b 是buffer, p 是 project, s 是 search, h 是 help 等等...
-
-** SPC 根导航** : SPC 意思是键盘上的 `` 即空格键.
-
-| Key | Description |
-| -------------------- | ------------- |
-| SPC ! | shell cmd |
-| SPC a | +applications |
-| SPC b | +buffers |
-| SPC 1...9 | windows 1...9 |
-
-## 特定语言模式
-
-## 按键导航
-
-
-
-### c/c++ 支持
-
-1. 代码自动补全: 自动补全和模糊匹配.
- ![completion-fuzzy-match](https://cloud.githubusercontent.com/assets/13142418/22505960/df9068de-e8b8-11e6-943e-d79ceca095f1.png)
-2. 语法检查: 异步 linting 和 make 框架.
- ![syntax-check](https://cloud.githubusercontent.com/assets/13142418/22506340/e28b4782-e8ba-11e6-974b-ca29574dcc1f.png)
-
-### go 支持
-
-1. 代码补全:
- ![2017-02-01_1360x721](https://cloud.githubusercontent.com/assets/13142418/22508345/8215c5e4-e8c4-11e6-95ec-f2a6e1e2f4d2.png)
-2. 语法检查:
- ![2017-02-01_1359x720](https://cloud.githubusercontent.com/assets/13142418/22509944/108b6508-e8cb-11e6-8104-6310a29ae796.png)
-
-### python 支持
-
-1. 代码补全:
- ![2017-02-02_1360x724](https://cloud.githubusercontent.com/assets/13142418/22537799/7d1d47fe-e948-11e6-8168-a82e3f688554.png)
-2. 语法检查:
- ![2017-02-02_1358x720](https://cloud.githubusercontent.com/assets/13142418/22537883/36de7b5e-e949-11e6-866f-73c48e8f59aa.png)
-
-## 以 Neovim 为中心的 SpaceVim Dark powered 模式.
-
-默认, SpaceVim 使用下面这些 dark powered 插件:
-
-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
-
-## 模块化配置
-
-## 多 leader 模式
-
-### 初始 vim 全局 leader
-
-Vim 的初始全局 leader 可以在任意模块中使用.
-
-### 本地 vim 初始 leader
-
-Vim 的本地初始 leader 可以在任意模块中使用.
-
-### 窗口函数 leader
-
-窗口函数 lea 只能在普通模式下使用
-导航键列表在下面的链接中 [link](#窗口管理)
-
-### 联合工作流程 leader
-
-联合工作流程 learder 只能在普通模式下使用. 联合 leader 需要 联合组.
-
-## 中心联合工作流程
-
-![unite](https://cloud.githubusercontent.com/assets/13142418/23955542/26fd5348-09d5-11e7-8253-1f43991439b0.png)
-
-- 列出所有已经安装的插件, 对想要的插件进行模糊查找, 默认行为是打开这些插件所对应的 github网址. 默认按键为 `lp`
- ![2017-01-21_1358x725](https://cloud.githubusercontent.com/assets/13142418/22175019/ce42d902-e027-11e6-89cd-4f44f70a10cd.png)
-
-- 列出所有导航键及其描述: `f`
- ![2017-02-01_1359x723](https://cloud.githubusercontent.com/assets/13142418/22507351/24af0d74-e8c0-11e6-985e-4a1404b629ed.png)
-
-\-列出所有 github.com 上已进行更新的插件, 模糊查找并打开对应的插件仓库. 默认按键为 `ls`
- ![2017-02-01_1359x722](https://cloud.githubusercontent.com/assets/13142418/22506915/deb99caa-e8bd-11e6-9b80-316281ddb48c.png)
-
-#### 插件亮点
-
-- 通过捕捉和延迟加载方式启动包管理.
-- 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
-
-#### 非延时加载插件
-
-| Name | Description |
-| ---------------- | ----------------------------------------------------- |
-| [dein.vim] | Dark powered Vim/Neovim plugin manager |
-| [vimproc] | Interactive command execution |
-| [colorschemes] | Awesome color-schemes |
-| [file-line] | Allow opening a file in a given line |
-| [neomru] | MRU source for Unite |
-| [cursorword] | Underlines word under cursor |
-| [gitbranch] | Lightweight git branch detection |
-| [gitgutter] | Shows git diffs in the gutter |
-| [tinyline] | Tiny great looking statusline |
-| [tagabana] | Central location for all tags |
-| [bookmarks] | Bookmarks, works independently from vim marks |
-| [tmux-navigator] | Seamless navigation between tmux panes and vim splits |
-
-### 延时加载插件
-
-#### 语言
-
-| Name | Description |
-| ------------------- | ------------------------------------------------------ |
-| [html5] | HTML5 omnicomplete and syntax |
-| [mustache] | Mustache and handlebars syntax |
-| [markdown] | Markdown syntax highlighting |
-| [ansible-yaml] | Additional support for Ansible |
-| [jinja] | Jinja support in vim |
-| [less] | Syntax for LESS |
-| [css3-syntax] | CSS3 syntax support to vim's built-in `syntax/css.vim` |
-| [csv] | Handling column separated data |
-| [pep8-indent] | Nicer Python indentation |
-| [logstash] | Highlights logstash configuration files |
-| [tmux] | vim plugin for tmux.conf |
-| [json] | Better JSON support |
-| [toml] | Syntax for TOML |
-| [i3] | i3 window manager config syntax |
-| [Dockerfile] | syntax and snippets for Dockerfile |
-| [go] | Go development |
-| [jedi-vim] | Python jedi autocompletion library |
-| [ruby] | Ruby configuration files |
-| [portfile] | Macports portfile configuration files |
-| [javascript] | Enhanced Javascript syntax |
-| [javascript-indent] | Javascript indent script |
-| [tern] | Provides Tern-based JavaScript editing support |
-| [php] | Up-to-date PHP syntax file |
-| [phpfold] | PHP folding |
-| [phpcomplete] | Improved PHP omnicompletion |
-| [phpindent] | PHP official indenting |
-| [phpspec] | PhpSpec integration |
-
-##### 命令
-
-| Name | Description |
-| ---------------- | --------------------------------------------------- |
-| [vimfiler] | Powerful file explorer |
-| [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 |
-
-##### 命令
-
-| Name | Description |
-| ------------ | ------------------------------------------------ |
-| [goyo] | Distraction-free writing |
-| [limelight] | Hyperfocus-writing |
-| [matchit] | Intelligent pair matching |
-| [indentline] | Display vertical indention lines |
-| [choosewin] | Choose window to use, like tmux's 'display-pane' |
-
-##### 补全
-
-| Name | Description |
-| ------------- | ------------------------------------------------------------- |
-| [delimitmate] | Insert mode auto-completion for quotes, 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 |
-
-##### 联合
-
-| Name | Description |
-| -------------------- | ------------------------------------------- |
-| [unite] | Unite and create user interfaces |
-| [unite-colorscheme] | Browse colorschemes |
-| [unite-filetype] | Select file type |
-| [unite-history] | Browse history of command/search |
-| [unite-build] | Build with Unite interface |
-| [unite-outline] | File "outline" source for unite |
-| [unite-tag] | Tags source for Unite |
-| [unite-quickfix] | Quickfix source for Unite |
-| [neossh] | SSH interface for plugins |
-| [unite-pull-request] | GitHub pull-request source for Unite |
-| [junkfile] | Create temporary files for memo and testing |
-| [unite-issue] | Issue manager for JIRA and GitHub |
-
-##### 操作符 & 文本的对象
-
-| Name | Description |
-| -------------------- | ---------------------------------------------- |
-| [operator-user] | Define your own operator easily |
-| [operator-replace] | Operator to replace text with register content |
-| [operator-surround] | Operator to enclose text objects |
-| [textobj-user] | Create your own text objects |
-| [textobj-multiblock] | Handle multiple brackets objects |
-
-#### 默认按键绑定
-
-| Key | Mode | Action |
-| --------------------- | :-----------: | ------------------------------------------------------------------------------ |
-| ``+`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 |
-
-##### 文件操作符
-
-| 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 %) |
-
-##### UI 编辑
-
-| Key | Mode | Action |
-| ----------------------- | :-----------: | ---------------------------------------------------------------- |
-| `F2` | _All_ | Toggle tagbar |
-| `F3` | _All_ | Toggle Vimfiler |
-| `` + num | Normal | Jump to the buffer whit the num index |
-| `` + num | Normal | Jump to the buffer whit the num index, this only works in neovim |
-| `` + `h`/`` | Normal | Jump to left buffer in the tabline, this only works in neovim |
-| `` + `l`/`` | Normal | Jump to Right buffer in the tabline, this only works in neovim |
-| ``+`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 |
-
-##### 窗口管理
-
-| 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, left buffer in the tabline will be displayed, if there is no buffer on the left, the right buffer will be displayed, if this is the last buffer in the tabline, then an empty buffer will be displayed. |
-| `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 |
-
-SpaceVim 拥有普通模式的导航键 q 作为智能关闭缓冲区. 普通模式下的功能 q
-可以通过 `` q r实现
-
-##### 本地函数
-
-| Key | Mode | Action |
-| ------------------ | :----: | -------------------------------- |
-| `` + `qr` | Normal | Same as native `q` |
-| `` + `qr/` | Normal | Same as native `q/`, open cmdwin |
-| `` + `qr?` | Normal | Same as native `q?`, open cmdwin |
-| `` + `qr:` | Normal | Same as native `q:`, open cmdwin |
-
-##### 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 |
-
-##### 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 |
-
-上面的列表是SpaceVim的书签列表导航键, 所以你不能使用`a`, `m`, `n`, `p` 或者 `i` 来标记当前位置寄存器,
-但是其他的寄存器不受此限制. 如果你确实需要这些寄存器的话, 你可以添加 `nnoremap m m`
-在你的默认配置文件中, 然后你就可以使用`a` 来管理 `\ma`.
-
-##### Plugin: Gina/Gita
-
-| Key | Mode | Action |
-| --------------- | :----: | ---------------------- |
-| ``+`gs` | Normal | Git status |
-| ``+`gd` | Normal | Git diff |
-| ``+`gc` | Normal | Git commit |
-| ``+`gb` | Normal | Git blame |
-| ``+`gp` | Normal | Git push |
-| ``+`ga` | Normal | Git add current buffer |
-| ``+`gA` | Normal | Git add all files |
-
-##### 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 |
-
-
-
-[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
-
-### 模块化配置
-
-SpaceVim 是由多个独立模块组成的配置集合,针对不同的功能需求,设计了多个模块,用户在使用的时候只需要载入相应的模块即可。比如对于 Java 开发者,载入 `lang#java`、`autocomplete`、`checker`、`tags`模块即可配置出一个适合 Java 开发的 Vim 环境。
-
-SpaceVim 支持的模:
-
-### Denite/Unite为主的工作平台
-
-Unite 的快捷键前缀是`f`, 可以通过 `g:spacevim_unite_leader` 来设定,快捷键无需记忆,SpaceVim 有很好的快捷键辅助机制,如下是 Unite 的快捷键键图:
-
-![unite](https://cloud.githubusercontent.com/assets/13142418/23955542/26fd5348-09d5-11e7-8253-1f43991439b0.png)
-
-Denite 是新一代的插件,相比 Unite 速度更加快,安装也更加方便。 的快捷键前缀是`F`, 可以通过 `g:spacevim_denite_leader` 来设定。
-
-### 自动补全
-
-SpaceVim 采用最快补全引擎 deoplete, 该引擎不同与YouCompleteMe的主要一点是支持多源补全,而不单单是语义补全。 而且补全来源拓展非常方便。
-
-### 细致的tags管理
-
-## 快速
-
-SpaceVim 将从 ~/.SpaceVim.d/init.vim 和当前目录的 ./SpaceVim.d/init.vim 载入配置,并且更新 rtp,用户可以在 ~/.SpaceVim.d/ 和 .SpaceVim.d/ 这两个文件夹下编辑自己的脚本,和 SpaceVim 的配置文件。
-
-示例:
-
-```vim
-" Here are some basic customizations,
-" please refer to the ~/.SpaceVim.d/init.vim
-" file for all possible options:
-let g:spacevim_default_indent = 3
-let g:spacevim_max_column = 80
-
-" Change the default directory where all miscellaneous persistent files go.
-" By default it is ~/.cache/vimfiles/.
-let g:spacevim_plugin_bundle_dir = '~/.cache/vimfiles/'
-
-" set SpaceVim colorscheme
-let g:spacevim_colorscheme = 'jellybeans'
-
-" Set plugin manager, you want to use, default is dein.vim
-let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug
-
-" use space as ``
-let mapleader = "\"
-
-" Set windows shortcut leader [Window], default is `s`
-let g:spacevim_windows_leader = 's'
-
-" Set unite work flow shortcut leader [Unite], default is `f`
-let g:spacevim_unite_leader = 'f'
-
-" By default, language specific plugins are not loaded. This can be changed
-" with the following, then the plugins for go development will be loaded.
-call SpaceVim#layers#load('lang#go')
-
-" loaded ui layer
-call SpaceVim#layers#load('ui')
-
-" If there is a particular plugin you don't like, you can define this
-" variable to disable them entirely:
-let g:spacevim_disabled_plugins=[
- \ ['junegunn/fzf.vim'],
- \ ]
-
-" 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'],
- \ ]
-
-" set the guifont
-let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
-```
-
-
-**捐助SpaceVim**
-
-| 微信 | 支付宝 |
-| ------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
-| | |
-
diff --git a/docs/cn/roadmap.md b/docs/cn/roadmap.md
index 3b1ad17bc..7b8bdbdb0 100644
--- a/docs/cn/roadmap.md
+++ b/docs/cn/roadmap.md
@@ -1,18 +1,36 @@
---
-title: "Roadmap"
-description: "The roadmap and milestones define the project direction and priorities."
+title: "设计蓝图"
+description: "SpaceVim 设计蓝图和里程碑, 这决定了 SpaceVim 的开发方向和特性实现的有先顺序。"
lang: cn
---
-# Roadmap
+# 设计蓝图
-The roadmap and [milestones](https://github.com/SpaceVim/SpaceVim/milestones) define the project direction and priorities.
+SpaceVim 的设计蓝图和[里程碑](https://github.com/SpaceVim/SpaceVim/milestones)决定了该项目的开发方向以及所有特性实现的有先顺序。
-## Next
-### [0.7](https://github.com/SpaceVim/SpaceVim/milestone/10)
+
-## Meta
+- [下一个版本](#下一个版本)
+ - [0.8](#08)
+- [版本说明](#版本说明)
+- [Completed](#completed)
+ - [v0.1.0](#v010)
+ - [v0.2.0](#v020)
+ - [v0.3.0](#v030)
+ - [v0.3.1](#v031)
+ - [v0.4.0](#v040)
+ - [v0.5.0](#v050)
+ - [v0.6.0](#v060)
+ - [v0.7.0](#v070)
+
+
+
+## 下一个版本
+
+### [0.8](https://github.com/SpaceVim/SpaceVim/milestone/11)
+
+## 版本说明
There are release milestones and meta milestones ("buckets").
@@ -22,39 +40,55 @@ There are release milestones and meta milestones ("buckets").
- [todo](https://github.com/SpaceVim/SpaceVim/milestone/4) is a bucket for triaged tickets which should be on the roadmap but cannot yet be assigned to a concrete milestone.
- [unplanned](https://github.com/SpaceVim/SpaceVim/milestone/5) is a bucket for low-priority items or items lacking a feasible path to completion.
+
+
+
+
## Completed
-### [0.6](https://github.com/SpaceVim/SpaceVim/milestone/9)
+### [v0.1.0](https://github.com/SpaceVim/SpaceVim/milestone/1)
-see the release note: [V0.5.0](https://github.com/SpaceVim/SpaceVim/milestone/9)
+Will release 0.1 at 2017-01-27, as you know, it is the last day of this year in chinese.
-### [0.5](https://github.com/SpaceVim/SpaceVim/milestone/8)
+release note: [v0.1.0](http://spacevim.org/SpaceVim-release-v0.1.0/)
-see the release note: [V0.5.0](https://github.com/SpaceVim/SpaceVim/milestone/9)
+### [v0.2.0](https://github.com/SpaceVim/SpaceVim/milestone/2)
-### [0.4](https://github.com/SpaceVim/SpaceVim/milestone/7)
+1. Many language support
+2. Improve default layer
+3. finish document
-- Improve git work flow
- - completion in commit message buffer
- - manager github issues annd PRs
-- Improve autocomplete layer
+release note: [v0.2.0](http://spacevim.org/SpaceVim-release-v0.2.0/)
-### [0.3](https://github.com/SpaceVim/SpaceVim/milestone/3)
+### [v0.3.0](https://github.com/SpaceVim/SpaceVim/milestone/3)
-- statusline with mode support
-- Plugin manager ui for dein
-- Improve mapping guide
-- Tabs manager
-- Layers manager
+- SpaceVim api
+- plugin manager ui ( for dein)
-### [0.2](https://github.com/SpaceVim/SpaceVim/milestone/2)
+release note: [v0.3.0](http://spacevim.org/SpaceVim-release-v0.3.0/)
-- Mnemonic key bindings
-- Denite support
-- Unite work flow
-- Windows support
+### [v0.3.1](https://github.com/SpaceVim/SpaceVim/milestone/6)
-### [0.1](https://github.com/SpaceVim/SpaceVim/milestone/1)
+features need to be implemented just after v0.3.0 has been released.
-- The primary goal of the 0.1 release ("first public release") is to reach a stable, functional baseline that can be built upon and used as a benchmark for further progress.
-- Layers feature
+release note: [v0.3.1](http://spacevim.org/SpaceVim-release-v0.3.1/)
+
+### [v0.4.0](https://github.com/SpaceVim/SpaceVim/milestone/7)
+
+release note: [v0.4.0](http://spacevim.org/SpaceVim-release-v0.4.0/)
+
+### [v0.5.0](https://github.com/SpaceVim/SpaceVim/milestone/8)
+
+release note: [v0.5.0](http://spacevim.org/SpaceVim-release-v0.5.0/)
+
+### [v0.6.0](https://github.com/SpaceVim/SpaceVim/milestone/9)
+
+release note: [v0.6.0](http://spacevim.org/SpaceVim-release-v0.6.0/)
+
+### [v0.7.0](https://github.com/SpaceVim/SpaceVim/milestone/10)
+
+- Improve all the lang#\* layers
+
+release note: [v0.7.0](http://spacevim.org/SpaceVim-release-v0.7.0/)
+
+
diff --git a/docs/documentation.md b/docs/documentation.md
index cd1af17b6..417c8b5a4 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -58,7 +58,6 @@ description: "General documentation about how to using SpaceVim, including the q
- [Open file with file tree.](#open-file-with-file-tree)
- [Commands starting with `g`](#commands-starting-with-g)
- [Commands starting with `z`](#commands-starting-with-z)
- - [Auto-saving](#auto-saving)
- [Searching](#searching)
- [With an external tool](#with-an-external-tool)
- [Useful key bindings](#useful-key-bindings)
@@ -116,7 +115,7 @@ Community-driven configuration provides curated packages tuned by power users an
## Highlighted features
-- **Great documentation:** access documentation in Vim with
+- **Great documentation:** access documentation in SpaceVim with
`:h SpaceVim`.
- **Minimalistic and nice graphical UI:** you'll love the awesome UI and its useful features.
- **Keep your fingers on the home row:** for quicker editing with support for QWERTY and BEPO layouts.
@@ -212,9 +211,10 @@ if you want to add custom `SPC` prefix key bindings, you can add this to SpaceVi
call SpaceVim#custom#SPCGroupName(['G'], '+TestGroup')
call SpaceVim#custom#SPC('nore', ['G', 't'], 'echom 1', 'echomessage 1', 1)
```
+
### Vim Compatible Mode
-This a list of different key bindings between SpaceVim and origin vim.
+This a list of different key bindings between SpaceVim and origin vim. If you still want to use this origin function, you can enable vimcompatible mode, via `vimcompatible = true` in `[options]` section.
- The `s` key does replace cursor char, but in SpaceVim it is the `Window` key bindings specific leader key by default (which can be set on another key binding in dotfile). If you still prefer the origin function of `s`, you can use an empty string to disable this feature.
@@ -232,8 +232,6 @@ the option is `g:spacevim_windows_smartclose`, default value is `q`. If you stil
[Send a PR](http://spacevim.org/development/) to add the differences you found in this section.
-If you still want to use this origin function, you can enable vimcompatible mode, via `vimcompatible = 1` in `[options]` section.
-
### Private Layers
This section is an overview of layers. A more extensive introduction to writing configuration layers can be found in [SpaceVim's layers page](http://spacevim.org/layers/) (recommended reading!).
@@ -265,7 +263,6 @@ Move Text Transient State:
![Move Text Transient State](https://user-images.githubusercontent.com/13142418/28489559-4fbc1930-6ef8-11e7-9d5a-716fe8dbb881.png)
-
## Interface elements
SpaceVim has a minimalistic and distraction free UI:
@@ -288,12 +285,12 @@ the variable colorschemes. For instance, to specify `desert`:
colorscheme_bg = "dark"
```
-| Mappings | Description |
-| ------------------ | -------------------------------------------------------------- |
+| Mappings | Description |
+| --------- | -------------------------------------------------------------- |
| `SPC T n` | switch to next random colorscheme listed in colorscheme layer. |
| `SPC T s` | select a theme using a unite buffer. |
-all the included colorscheme can be found in [colorscheme layer](http://spacevim.org/layers/colorscheme/).
+all the included colorscheme can be found in [colorscheme layer](layers/colorscheme/).
**NOTE**:
@@ -325,23 +322,23 @@ Also note that changing this value has no effect if you are running Vim/Neovim i
Some UI indicators can be toggled on and off (toggles start with t and T):
-| Key Binding | Description |
-| ----------- | ----------------------------------------------------------------- |
-| `SPC t 8` | highlight any character past the 80th column |
+| Key Binding | Description |
+| ----------- | -------------------------------------------------------- |
+| `SPC t 8` | highlight any character past the 80th column |
| `SPC t f` | display the fill column (by default `max_column` is 120) |
-| `SPC t h h` | toggle highlight of the current line |
-| `SPC t h i` | toggle highlight indentation levels (TODO) |
-| `SPC t h c` | toggle highlight indentation current column |
-| `SPC t h s` | toggle syntax highlighting |
-| `SPC t i` | toggle indentation guide at point |
-| `SPC t n` | toggle line numbers |
-| `SPC t b` | toggle background |
-| `SPC t t` | open tabs manager |
-| `SPC T ~` | display ~ in the fringe on empty lines |
-| `SPC T F` | toggle frame fullscreen |
-| `SPC T f` | toggle display of the fringe |
-| `SPC T m` | toggle menu bar |
-| `SPC T t` | toggle tool bar |
+| `SPC t h h` | toggle highlight of the current line |
+| `SPC t h i` | toggle highlight indentation levels (TODO) |
+| `SPC t h c` | toggle highlight indentation current column |
+| `SPC t h s` | toggle syntax highlighting |
+| `SPC t i` | toggle indentation guide at point |
+| `SPC t n` | toggle line numbers |
+| `SPC t b` | toggle background |
+| `SPC t t` | open tabs manager |
+| `SPC T ~` | display ~ in the fringe on empty lines |
+| `SPC T F` | toggle frame fullscreen |
+| `SPC T f` | toggle display of the fringe |
+| `SPC T m` | toggle menu bar |
+| `SPC T t` | toggle tool bar |
### Statusline
@@ -356,6 +353,10 @@ The `core#statusline` layer provide a heavily customized powerline with the foll
- toggle minor mode lighters
- show VCS information (branch, hunk summary) (need `git` and `VersionControl` layer)
+| Key bindings | Description |
+| ------------ | -------------------------------------------- |
+| `SPC [1-9]` | jump to the windows with the specific number |
+
Reminder of the color codes for the states:
| Mode | Color |
@@ -382,24 +383,20 @@ Some elements can be dynamically toggled:
| `SPC t m T` | toggle the mode line itself |
| `SPC t m v` | toggle the version control info |
-**Powerline font installation:**
+**nerd font installation:**
-By default SpaceVim use [DejaVu Sans Mono for Powerline](https://github.com/powerline/fonts/tree/master/DejaVuSansMono), to make statusline render correctly, you need to install the font. [powerline extra symbols](https://github.com/ryanoasis/powerline-extra-symbols) also should be installed.
+By default SpaceVim use nerd-fonts, please read the documentation of nerd fonts.
**syntax checking integration:**
When syntax checking minor mode is enabled, a new element appears showing the number of errors, warnings.
-syntax checking integration in statusline.
-
**Search index integration:**
Search index shows the number of occurrence when performing a search via `/` or `?`. SpaceVim integrates nicely the search status by displaying it temporarily when n or N are being pressed. See the 20/22 segment on the screenshot below.
![search status](https://cloud.githubusercontent.com/assets/13142418/26313080/578cc68c-3f3c-11e7-9259-a27419d49572.png)
-_search index in statusline_
-
**Battery status integration:**
_acpi_ displays the percentage of total charge of the battery as well as the time remaining to charge or discharge completely the battery.
@@ -416,10 +413,10 @@ all the colors based on the current colorscheme
**Statusline separators:**
-It is possible to easily customize the statusline separator by setting the `g:spacevim_statusline_separator` variable in your custom configuration file and then redraw the statusline. For instance if you want to set back the separator to the well-known arrow separator add the following snippet to your configuration file:
+It is possible to easily customize the statusline separator by setting the `statusline_separator` variable in your custom configuration file and then redraw the statusline. For instance if you want to set back the separator to the well-known arrow separator add the following snippet to your configuration file:
-```vim
-let g:spacevim_statusline_separator = 'arrow'
+```toml
+ statusline_separator = 'arrow'
```
here is an exhaustive set of screenshots for all the available separator:
@@ -436,7 +433,7 @@ here is an exhaustive set of screenshots for all the available separator:
The minor mode area can be toggled on and off with `SPC t m m`
-Unicode symbols are displayed by default. Setting the variable `g:spacevim_statusline_unicode_symbols` to 0 in your custom configuration file will display ASCII characters instead (may be useful in terminal if you cannot set an appropriate font).
+Unicode symbols are displayed by default. Add `statusline_unicode_symbols = false` to your custom configuration file, statusline will display ASCII characters instead (may be useful in terminal if you cannot set an appropriate font).
The letters displayed in the statusline correspond to the key bindings used to toggle them.
@@ -491,20 +488,20 @@ endfunction
this example is for gruvbox colorscheme, if you want to use same colors when
switch between different colorschemes, you may need to set
-`g:spacevim_custom_color_palette` in your custom configuration file. for example:
+`custom_color_palette` in your custom configuration file. for example:
-```vim
-let g:spacevim_custom_color_palette = [
- \ ['#282828', '#a89984', 246, 235],
- \ ['#a89984', '#504945', 239, 246],
- \ ['#a89984', '#3c3836', 237, 246],
- \ ['#665c54', 241],
- \ ['#282828', '#83a598', 235, 109],
- \ ['#282828', '#fe8019', 235, 208],
- \ ['#282828', '#8ec07c', 235, 108],
- \ ['#282828', '#689d6a', 235, 72],
- \ ['#282828', '#8f3f71', 235, 132],
- \ ]
+```toml
+custom_color_palette = [
+ ["#282828", "#a89984", 246, 235],
+ ["#a89984", "#504945", 239, 246],
+ ["#a89984", "#3c3836", 237, 246],
+ ["#665c54", 241],
+ ["#282828", "#83a598", 235, 109],
+ ["#282828", "#fe8019", 235, 208],
+ ["#282828", "#8ec07c", 235, 108],
+ ["#282828", "#689d6a", 235, 72],
+ ["#282828", "#8f3f71", 235, 132],
+ ]
```
### tabline
@@ -776,7 +773,7 @@ then use `` or `` and `` to select the mapping, press `` w
Denite/Unite is powerful tool to unite all interfaces. it was meant to be like [Helm](https://github.com/emacs-helm/helm) for Vim. These mappings is for getting help info about functions, variables etc:
| Mappings | Description |
-| --------- | ---------------------------------------------------------------- |
+| ----------- | ---------------------------------------------------------------- |
| `SPC h SPC` | discover SpaceVim documentation, layers and packages using unite |
| `SPC h i` | get help with the symbol at point |
| `SPC h k` | show top-level bindings with which-key |
@@ -784,9 +781,9 @@ Denite/Unite is powerful tool to unite all interfaces. it was meant to be like
Reporting an issue:
-| Mappings | Description |
-| -------- | ----------------------------------------------------------- |
-| `SPC h I`| Open SpaceVim GitHub issue page with pre-filled information |
+| Mappings | Description |
+| --------- | ----------------------------------------------------------- |
+| `SPC h I` | Open SpaceVim GitHub issue page with pre-filled information |
#### Available layers
@@ -796,7 +793,17 @@ All layers can be easily discovered via `:SPLayer -l` accessible with `SPC h l`.
All plugins can be easily discovered via ` l p`.
-**New packages from ELPA repositories**
+**Add custom plugins**
+
+If you want to add plugin from github, just add the repo name to the SpaceVim option `custom_plugins`:
+
+```toml
+# custom plugins {{{
+[[custom_plugins]]
+name = 'lilydjwg/colorizer'
+merged = 0
+# }}}
+```
#### Toggles
@@ -1032,12 +1039,14 @@ Convenient key bindings are located under the prefix `SPC f v` to quickly naviga
SpaceVim use vimfiler as the default file tree, and the default key binding is `F3`, and SpaceVim also provide `SPC f t` and `SPC f T` to open the file tree. to change the file explore to nerdtree:
-```vim
-" the default value is vimfiler
-let g:spacevim_filemanager = 'nerdtree'
+```toml
+# the default value is vimfiler
+filemanager = "nerdtree"
```
-VCS integration is supported, there will be a column status, this feature maybe make vimfiler slow, so it is not enabled by default. to enable this feature, add `let g:spacevim_enable_vimfiler_gitstatus = 1` to your custom config. here is any picture for this feature:
+VCS integration is supported, there will be a column status, this feature maybe make vimfiler slow, so
+it is not enabled by default. to enable this feature, add `enable_vimfiler_gitstatus = true` to your custom config.
+here is any picture for this feature:
![file-tree](https://user-images.githubusercontent.com/13142418/26881817-279225b2-4bcb-11e7-8872-7e4bd3d1c84e.png)
@@ -1183,8 +1192,6 @@ after pressing prefix `z` in normal mode, if you do not remember the mappings, y
| `zz` | smart scroll |
| `z` | scroll screen N characters to right |
-### Auto-saving
-
### Searching
#### With an external tool
diff --git a/docs/quick-start-guide.md b/docs/quick-start-guide.md
index 5ce8f706b..3c19adbaa 100644
--- a/docs/quick-start-guide.md
+++ b/docs/quick-start-guide.md
@@ -1,6 +1,6 @@
---
title: "Quick start guide"
-description: "SpaceVim is a community-driven vim distribution that seeks to provide layer feature."
+description: "A quick start guide which will tell you how to install and config SpaceVim, also provides a list of resources for learning SpaceVim."
---
# Quick start guide
diff --git a/docs/roadmap.md b/docs/roadmap.md
index 8ae2c085c..e03aef6b9 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -21,7 +21,7 @@ There are release milestones and meta milestones ("buckets").
- [todo](https://github.com/SpaceVim/SpaceVim/milestone/4) is a bucket for triaged tickets which should be on the roadmap but cannot yet be assigned to a concrete milestone.
- [unplanned](https://github.com/SpaceVim/SpaceVim/milestone/5) is a bucket for low-priority items or items lacking a feasible path to completion.
-## Completed
+