From c20177c40109c715ae6643e88188ffe2ac22d37f Mon Sep 17 00:00:00 2001
From: Wang Shidong <wsdjeg@outlook.com>
Date: Fri, 7 May 2021 19:29:32 +0800
Subject: [PATCH] Update doc (#4246)

---
 autoload/SpaceVim.vim                        |   18 +
 autoload/SpaceVim/layers/lang/assembly.vim   |   10 +
 autoload/SpaceVim/layers/lang/autohotkey.vim |   10 +
 autoload/SpaceVim/layers/lang/clojure.vim    |   49 +-
 autoload/SpaceVim/layers/lang/e.vim          |   12 +
 autoload/SpaceVim/layers/lang/eiffel.vim     |    2 +-
 autoload/SpaceVim/layers/lang/forth.vim      |   17 +
 autoload/SpaceVim/layers/lang/fortran.vim    |   28 +
 autoload/SpaceVim/layers/lang/io.vim         |   28 +
 autoload/SpaceVim/layers/lang/latex.vim      |   37 +
 autoload/SpaceVim/layers/lang/markdown.vim   |   23 +
 autoload/SpaceVim/layers/lang/pascal.vim     |   16 +
 autoload/SpaceVim/layers/lang/perl.vim       |   51 +-
 autoload/SpaceVim/layers/lang/prolog.vim     |   21 +
 autoload/SpaceVim/layers/lang/purescript.vim |   39 +
 autoload/SpaceVim/layers/lang/python.vim     |   54 +-
 autoload/SpaceVim/layers/lang/reason.vim     |   10 +
 autoload/SpaceVim/layers/lang/scheme.vim     |   16 +
 autoload/SpaceVim/layers/lang/swift.vim      |   11 +
 autoload/SpaceVim/layers/lang/wolfram.vim    |   27 +
 bundle/spacevim/addon-info.json              |    6 +
 bundle/spacevim/autoload/spacevimcn.vim      |   58 +
 bundle/spacevim/doc/SpaceVim.txt             |   74 +
 doc/SpaceVim.cnx                             | 1431 +-----------------
 doc/SpaceVim.txt                             |  633 +++++++-
 docs/documentation.md                        |   35 +-
 docs/faq.md                                  |    5 +
 docs/layers.md                               |    7 +-
 docs/layers/lang/clojure.md                  |   15 +-
 docs/layers/lang/csharp.md                   |    4 +-
 docs/layers/lang/dockerfile.md               |    2 +-
 wiki/cn/Following-HEAD.md                    |   73 +-
 wiki/en/Following-HEAD.md                    |   73 +-
 wiki/en/Getting-help.md                      |    2 +-
 34 files changed, 1295 insertions(+), 1602 deletions(-)
 create mode 100644 bundle/spacevim/addon-info.json
 create mode 100644 bundle/spacevim/autoload/spacevimcn.vim
 create mode 100644 bundle/spacevim/doc/SpaceVim.txt
 mode change 100644 => 120000 doc/SpaceVim.cnx

diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim
index d51e48385..a964d7a3b 100644
--- a/autoload/SpaceVim.vim
+++ b/autoload/SpaceVim.vim
@@ -1605,6 +1605,24 @@ endfunction
 "   General guide for using SpaceVim. Including layer configuration, bootstrap
 "   function.
 
+
+""
+" @section buffers-and-files, usage-buffers-and-files
+" @parentsection usage
+" @subsection Buffers manipulation key bindings
+" All buffers key bindings are start with `b` prefix:
+" >
+"   Key Bindings	Descriptions
+"   SPC <Tab>	    switch to alternate buffer in the current window (switch back and forth)
+"   SPC b .	      buffer transient state
+"   SPC b b	      switch to a buffer (via denite/unite)
+"   SPC b d	      kill the current buffer (does not delete the visited file)
+"   SPC u SPC b d	kill the current buffer and window (does not delete the visited file) (TODO)
+"   SPC b D	      kill a visible buffer using vim-choosewin
+" <
+
+
+
 ""
 " @section FAQ, faq
 " This is a list of the frequently asked questions about SpaceVim.
diff --git a/autoload/SpaceVim/layers/lang/assembly.vim b/autoload/SpaceVim/layers/lang/assembly.vim
index 9e36e39f4..4fba7513c 100644
--- a/autoload/SpaceVim/layers/lang/assembly.vim
+++ b/autoload/SpaceVim/layers/lang/assembly.vim
@@ -6,6 +6,16 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#assembly, layer-lang-assembly
+" @parentsection layers
+" This layer provides syntax highlighting for assembly. To enable this
+" layer:
+" >
+"   [layers]
+"     name = "lang#assembly"
+" <
+
 function! SpaceVim#layers#lang#assembly#plugins() abort
   let plugins = []
   call add(plugins, ['wsdjeg/vim-assembly', { 'merged' : 0}])
diff --git a/autoload/SpaceVim/layers/lang/autohotkey.vim b/autoload/SpaceVim/layers/lang/autohotkey.vim
index 1182b0ae0..1d2a6b2ed 100644
--- a/autoload/SpaceVim/layers/lang/autohotkey.vim
+++ b/autoload/SpaceVim/layers/lang/autohotkey.vim
@@ -6,6 +6,16 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#autohotkey, layer-lang-autohotkey
+" @parentsection layers
+" This layer provides syntax highlighting for autohotkey. To enable this
+" layer:
+" >
+"   [layers]
+"     name = "lang#autohotkey"
+" <
+
 function! SpaceVim#layers#lang#autohotkey#plugins() abort
   let plugins = []
   call add(plugins, ['wsdjeg/vim-autohotkey', {'merged' : 0}])
diff --git a/autoload/SpaceVim/layers/lang/clojure.vim b/autoload/SpaceVim/layers/lang/clojure.vim
index e2e00f16f..c42ab1a39 100644
--- a/autoload/SpaceVim/layers/lang/clojure.vim
+++ b/autoload/SpaceVim/layers/lang/clojure.vim
@@ -9,12 +9,47 @@
 ""
 " @section lang#clojure, layer-lang-clojure
 " @parentsection layers
-" This layer provides syntax highlighting for clojure. To enable this
-" layer:
+" This layer provides clojure language support in SpaceVim. Including syntax
+" highlighting, code indent, code runner and REPL. This layer is not enabled
+" by default, To enable this layer:
 " >
 "   [layers]
 "     name = "lang#clojure"
 " <
+"
+" @subsection layer options
+"
+" 1. `clojure_interpreter`: Set the clojure interpreter, by default, it is
+" `clojure`
+" >
+"   [[layers]]
+"     name = 'lang#clojure'
+"     clojure_interpreter = 'path/to/clojure'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
+"
+" This layer also provides REPL support for clojure, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
+
+if exists('s:clojure_interpreter')
+  finish
+endif
+
+let s:clojure_interpreter = 'clojure'
 
 function! SpaceVim#layers#lang#clojure#plugins() abort
   let plugins = []
@@ -40,9 +75,9 @@ function! SpaceVim#layers#lang#clojure#config() abort
   call SpaceVim#mapping#space#regesit_lang_mappings('clojure', function('s:language_specified_mappings'))
   " in Window, if install clojure via scoop install clojure, the command is
   " cmd-clj
-  let clojure = get(filter(['cmd-clj'], 'executable(v:val)'), 0, 'clojure')
-  call SpaceVim#plugins#runner#reg_runner('clojure', clojure . ' -M %s')
-  call SpaceVim#plugins#repl#reg('clojure', clojure)
+  " let clojure = get(filter(['cmd-clj'], 'executable(v:val)'), 0, 'clojure')
+  call SpaceVim#plugins#runner#reg_runner('clojure', s:clojure_interpreter . ' -M %s')
+  call SpaceVim#plugins#repl#reg('clojure', s:clojure_interpreter)
   call SpaceVim#plugins#tasks#reg_provider(funcref('s:lein_tasks'))
   call add(g:spacevim_project_rooter_patterns, 'project.clj')
 endfunction
@@ -76,3 +111,7 @@ function! s:lein_tasks() abort
   endif
   return detect_task
 endfunction
+
+function! SpaceVim#layers#lang#clojure#set_variable(var) abort
+  let s:clojure_interpreter = get(a:var, 'clojure_interpreter', s:clojure_interpreter)
+endfunction
diff --git a/autoload/SpaceVim/layers/lang/e.vim b/autoload/SpaceVim/layers/lang/e.vim
index 424f7cfd8..ad3921232 100644
--- a/autoload/SpaceVim/layers/lang/e.vim
+++ b/autoload/SpaceVim/layers/lang/e.vim
@@ -6,6 +6,18 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#e, layer-lang-e
+" @parentsection layers
+" @subsection Intro
+"
+" This layer includes utilities and language-specific mappings for e development.
+" By default it is disabled, to enable this layer:
+" >
+"   [layers]
+"     name = "lang#e"
+" <
+
 if exists('s:e_interpreter')
   finish
 endif
diff --git a/autoload/SpaceVim/layers/lang/eiffel.vim b/autoload/SpaceVim/layers/lang/eiffel.vim
index d24f56f13..9705e2bd8 100644
--- a/autoload/SpaceVim/layers/lang/eiffel.vim
+++ b/autoload/SpaceVim/layers/lang/eiffel.vim
@@ -20,7 +20,7 @@
 " >
 "   Key             Function
 "   -----------------------------
-"   SPC l          
+"   SPC l c         run eclean          
 " <
 "
 
diff --git a/autoload/SpaceVim/layers/lang/forth.vim b/autoload/SpaceVim/layers/lang/forth.vim
index 2746a489c..a947a45e5 100644
--- a/autoload/SpaceVim/layers/lang/forth.vim
+++ b/autoload/SpaceVim/layers/lang/forth.vim
@@ -6,6 +6,23 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#forth, layer-lang-forth
+" @parentsection layers
+" This layer is for forth development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#forth'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
+"
 
 function! SpaceVim#layers#lang#forth#plugins() abort
   let plugins = []
diff --git a/autoload/SpaceVim/layers/lang/fortran.vim b/autoload/SpaceVim/layers/lang/fortran.vim
index 1ee44f1de..6db556c45 100644
--- a/autoload/SpaceVim/layers/lang/fortran.vim
+++ b/autoload/SpaceVim/layers/lang/fortran.vim
@@ -6,6 +6,34 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#fortran, layer-lang-fortran
+" @parentsection layers
+" This layer is for fortran development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#fortran'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
+"
+" This layer also provides REPL support for fortran, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
+
 function! SpaceVim#layers#lang#fortran#plugins() abort
   let plugins = []
   call add(plugins,[g:_spacevim_root_dir . 'bundle/fortran.vim',        { 'merged' : 0}])
diff --git a/autoload/SpaceVim/layers/lang/io.vim b/autoload/SpaceVim/layers/lang/io.vim
index ff4a1b61b..3cac3c7fc 100644
--- a/autoload/SpaceVim/layers/lang/io.vim
+++ b/autoload/SpaceVim/layers/lang/io.vim
@@ -6,6 +6,34 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#io, layer-lang-io
+" @parentsection layers
+" This layer is for io development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#io'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
+"
+" This layer also provides REPL support for io, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
+
 function! SpaceVim#layers#lang#io#plugins() abort
   let plugins = []
   call add(plugins, ['wsdjeg/vim-iolang', { 'merged' : 0}])
diff --git a/autoload/SpaceVim/layers/lang/latex.vim b/autoload/SpaceVim/layers/lang/latex.vim
index 27ec888b3..0cd7c6ba4 100644
--- a/autoload/SpaceVim/layers/lang/latex.vim
+++ b/autoload/SpaceVim/layers/lang/latex.vim
@@ -6,6 +6,43 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#latex, layer-lang-latex
+" @parentsection layers
+" This layer is for latex development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#latex'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l i         vimtex-info
+"   normal          SPC l I         vimtex-info-full
+"   normal          SPC l t         vimtex-toc-open
+"   normal          SPC l T         vimtex-toc-toggle
+"   normal          SPC l y         vimtex-labels-open
+"   normal          SPC l Y         vimtex-labels-toggle
+"   normal          SPC l v         vimtex-view
+"   normal          SPC l r         vimtex-reverse-search
+"   normal          SPC l l         vimtex-compile
+"   normal          SPC l L         vimtex-compile-selected
+"   normal          SPC l k         vimtex-stop
+"   normal          SPC l K         vimtex-stop-all
+"   normal          SPC l e         vimtex-errors
+"   normal          SPC l o         vimtex-compile-output
+"   normal          SPC l g         vimtex-status
+"   normal          SPC l G         vimtex-status-all
+"   normal          SPC l c         vimtex-clean
+"   normal          SPC l C         vimtex-clean-full
+"   normal          SPC l m         vimtex-imaps-list
+"   normal          SPC l x         vimtex-reload
+"   normal          SPC l X         vimtex-reload-state
+"   normal          SPC l s         vimtex-toggle-main
+" <
 
 function! SpaceVim#layers#lang#latex#plugins() abort
   let plugins = []
diff --git a/autoload/SpaceVim/layers/lang/markdown.vim b/autoload/SpaceVim/layers/lang/markdown.vim
index 0c5795731..07ab5e24f 100644
--- a/autoload/SpaceVim/layers/lang/markdown.vim
+++ b/autoload/SpaceVim/layers/lang/markdown.vim
@@ -6,6 +6,29 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#markdown, layer-lang-markdown
+" @parentsection layers
+" This layer is for markdown language, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#markdown'
+" <
+" @subsection Layer options
+"
+" 1. `enabled_formater`: Set the enabled formater, by default it is
+"   `['remark']`.
+" 2. `enableWcwidth`: Enable/disabled wcwidth option, it is disabled by
+"    default.
+" 3. `listItemChar`: Set the default list item char, it is `-` by default.
+" 4. `listItemIndent`: Set the default indent of list item. It is `1` by
+"    default.
+
+if exists('s:md_listItemIndent')
+  finish
+endif
+
 let s:SYS = SpaceVim#api#import('system')
 
 
diff --git a/autoload/SpaceVim/layers/lang/pascal.vim b/autoload/SpaceVim/layers/lang/pascal.vim
index 59c4e201c..ed3f825e9 100644
--- a/autoload/SpaceVim/layers/lang/pascal.vim
+++ b/autoload/SpaceVim/layers/lang/pascal.vim
@@ -6,6 +6,22 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#pascal, layer-lang-pascal
+" @parentsection layers
+" This layer is for pascal development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#pascal'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
 
 let s:SYS = SpaceVim#api#import('system')
 
diff --git a/autoload/SpaceVim/layers/lang/perl.vim b/autoload/SpaceVim/layers/lang/perl.vim
index 920aac5e2..fcb956a6f 100644
--- a/autoload/SpaceVim/layers/lang/perl.vim
+++ b/autoload/SpaceVim/layers/lang/perl.vim
@@ -6,6 +6,49 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#perl, layer-lang-perl
+" @parentsection layers
+" This layer is for perl development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#perl'
+" <
+"
+" @subsection layer options
+"
+" 1. `perl_interpreter`: Set the perl interpreter, by default, it is `perl`
+" >
+"   [[layers]]
+"     name = 'lang#perl'
+"     perl_interpreter = 'path/to/perl'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
+"
+" This layer also provides REPL support for perl, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
+
+if exists('s:perl_interpreter')
+  finish
+endif
+
+let s:perl_interpreter = 'perl'
+
 let s:SYS = SpaceVim#api#import('system')
 
 function! SpaceVim#layers#lang#perl#plugins() abort
@@ -19,7 +62,7 @@ endfunction
 function! SpaceVim#layers#lang#perl#config() abort
   let g:perldoc_no_default_key_mappings = 1
   call SpaceVim#plugins#runner#reg_runner('perl', {
-        \ 'exe' : 'perl',
+        \ 'exe' : s:perl_interpreter,
         \ 'opt' : ['-'],
         \ 'usestdin' : 1,
         \ })
@@ -27,7 +70,7 @@ function! SpaceVim#layers#lang#perl#config() abort
   if executable('perli')
     call SpaceVim#plugins#repl#reg('perl', ['perli'. (s:SYS.isWindows ? '.CMD' : '')])
   else
-    call SpaceVim#plugins#repl#reg('perl', ['perl', '-del'])
+    call SpaceVim#plugins#repl#reg('perl', [s:perl_interpreter, '-del'])
   endif
 endfunction
 function! s:language_specified_mappings() abort
@@ -51,3 +94,7 @@ function! s:language_specified_mappings() abort
         \ 'call SpaceVim#plugins#repl#send("selection")',
         \ 'send selection and keep code buffer focused', 1)
 endfunction
+
+function! SpaceVim#layers#lang#perl#set_variable(var) abort
+  let s:perl_interpreter = get(a:var, 'perl_interpreter', s:perl_interpreter)
+endfunction
diff --git a/autoload/SpaceVim/layers/lang/prolog.vim b/autoload/SpaceVim/layers/lang/prolog.vim
index ffd605c34..73103aff8 100644
--- a/autoload/SpaceVim/layers/lang/prolog.vim
+++ b/autoload/SpaceVim/layers/lang/prolog.vim
@@ -16,6 +16,27 @@
 "     name = 'lang#prolog'
 " <
 "
+" @subsection Key bindings
+"
+" >
+"   Key             Function
+"   --------------------------------
+"   SPC l r         run current file
+" <
+"
+" The default code runner command is `swipl -q -f %s -t main`, `%s` will be
+" replaced to the path of current file.
+"
+" This layer also provides REPL support for prolog, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
 
 function! SpaceVim#layers#lang#prolog#plugins() abort
   let plugins = []
diff --git a/autoload/SpaceVim/layers/lang/purescript.vim b/autoload/SpaceVim/layers/lang/purescript.vim
index d6427b193..c6372df5d 100644
--- a/autoload/SpaceVim/layers/lang/purescript.vim
+++ b/autoload/SpaceVim/layers/lang/purescript.vim
@@ -6,6 +6,45 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#purescript, layer-lang-purescript
+" @parentsection layers
+" This layer provides purescript language support for SpaceVim. Includding syntax
+" highlighting, code formatting and code completion. This layer is not enabled
+" by default, to enable this layer, add following snippet into SpaceVim
+" configuration file:
+" >
+"   [[layers]]
+"     name = 'lang#purescript'
+" <
+" @subsection Key bindings
+"
+" >
+"   Key             Function
+"   --------------------------------
+"   SPC l L         list loaded modules
+"   SPC l l         reset loaded modules and load externs
+"   SPC l R         rebuild current buffer
+"   SPC l f         generate function template
+"   SPC l t         add type annotation
+"   SPC l a         apply current line suggestion
+"   SPC l A         apply all suggestions
+"   SPC l C         add case expression
+"   SPC l i         import module
+"   SPC l p         search pursuit for cursor ident
+"   SPC l T         find type of cursor ident
+" <
+"
+" This layer also provides REPL support for purescript, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
 
 function! SpaceVim#layers#lang#purescript#plugins() abort
   let plugins = []
diff --git a/autoload/SpaceVim/layers/lang/python.vim b/autoload/SpaceVim/layers/lang/python.vim
index 6eab24a1a..7a86a12eb 100644
--- a/autoload/SpaceVim/layers/lang/python.vim
+++ b/autoload/SpaceVim/layers/lang/python.vim
@@ -9,11 +9,59 @@
 ""
 " @section lang#python, layer-lang-python
 " @parentsection layers
-" To make this layer work well, you should install jedi.
-" @subsection mappings
+" This layer provides python language support for SpaceVim. Includding syntax
+" highlighting, code formatting and code completion. This layer is not enabled
+" by default, to enable this layer, add following snippet into SpaceVim
+" configuration file:
 " >
-"   mode            key             function
+"   [[layers]]
+"     name = 'lang#python'
 " <
+"
+" @subsection Options
+"
+" 1. python_file_head: the default file head for python source code.
+" >
+"   [layers]
+"     name = "lang#python"
+"     python_file_head = [      
+"       '#!/usr/bin/python3',
+"       '# -*- coding : utf-8 -*-'
+"       ''
+"     ]
+" <
+" 2. `python_interpreter`: Set the interpreter of python.
+" >
+"   [[layers]]
+"     name = 'lang#python'
+"     python_interpreter = '~/download/bin/python3'
+" <
+" 3. format_on_save: enable/disable code formation when save python file. This
+" options is disabled by default, to enable it:
+" >
+"   [[layers]]
+"     name = 'lang#python'
+"     format_on_save = true
+" <
+"
+" @subsection Key bindings
+"
+" >
+"   Key             Function
+"   --------------------------------
+"   SPC l r         run current file
+" <
+"
+" This layer also provides REPL support for python, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
 
 
 if exists('s:enabled_linters')
diff --git a/autoload/SpaceVim/layers/lang/reason.vim b/autoload/SpaceVim/layers/lang/reason.vim
index 0c15026e3..4a98577b5 100644
--- a/autoload/SpaceVim/layers/lang/reason.vim
+++ b/autoload/SpaceVim/layers/lang/reason.vim
@@ -11,6 +11,16 @@ if exists('s:JSON')
   finish
 endif
 
+""
+" @section lang#reason, layer-lang-reason
+" @parentsection layers
+" This layer is for reason development, disabled by default, to enable this
+" layer, add following snippet to your @section(options) file.
+" >
+"   [[layers]]
+"     name = 'lang#reason'
+" <
+
 let s:JSON = SpaceVim#api#import('data#json')
 
 function! SpaceVim#layers#lang#reason#plugins() abort
diff --git a/autoload/SpaceVim/layers/lang/scheme.vim b/autoload/SpaceVim/layers/lang/scheme.vim
index c37fd3ad2..b7cb55240 100644
--- a/autoload/SpaceVim/layers/lang/scheme.vim
+++ b/autoload/SpaceVim/layers/lang/scheme.vim
@@ -31,6 +31,22 @@ endif
 "
 " 2. scheme_interpreter: Set the path or interpreter of scheme.
 "
+" @subsection Mappings
+" >
+"   Key         Function
+"   -----------------------------------------------
+"   SPC l r     Run current file
+" <
+" This layer also provides REPL support for scheme, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
 
 function! SpaceVim#layers#lang#scheme#config() abort
   if s:scheme_dialect ==# 'mit-scheme'
diff --git a/autoload/SpaceVim/layers/lang/swift.vim b/autoload/SpaceVim/layers/lang/swift.vim
index ce40c2931..1124270e9 100644
--- a/autoload/SpaceVim/layers/lang/swift.vim
+++ b/autoload/SpaceVim/layers/lang/swift.vim
@@ -20,7 +20,18 @@
 "   Key         Function
 "   -----------------------------------------------
 "   SPC l k     jumping to placeholders
+"   SPC l r     Run current file
 " <
+" This layer also provides REPL support for swift, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
 
 func! SpaceVim#layers#lang#swift#plugins() abort
   let plugins = []
diff --git a/autoload/SpaceVim/layers/lang/wolfram.vim b/autoload/SpaceVim/layers/lang/wolfram.vim
index 0d7c483cc..3bbeb5bda 100644
--- a/autoload/SpaceVim/layers/lang/wolfram.vim
+++ b/autoload/SpaceVim/layers/lang/wolfram.vim
@@ -6,6 +6,33 @@
 " License: GPLv3
 "=============================================================================
 
+""
+" @section lang#wolfram, layer-lang-wolfram
+" @parentsection layers
+" This layer is for wolfram development, disabled by default, to enable this
+" layer, add following snippet to your SpaceVim configuration file.
+" >
+"   [[layers]]
+"     name = 'lang#wolfram'
+" <
+"
+" @subsection Key bindings
+" >
+"   Mode            Key             Function
+"   ---------------------------------------------
+"   normal          SPC l r         run current file
+" <
+"
+" This layer also provides REPL support for wolfram, the key bindings are:
+" >
+"   Key             Function
+"   ---------------------------------------------
+"   SPC l s i       Start a inferior REPL process
+"   SPC l s b       send whole buffer
+"   SPC l s l       send current line
+"   SPC l s s       send selection text
+" <
+"
 
 function! SpaceVim#layers#lang#wolfram#plugins() abort
   let plugins = []
diff --git a/bundle/spacevim/addon-info.json b/bundle/spacevim/addon-info.json
new file mode 100644
index 000000000..b53071166
--- /dev/null
+++ b/bundle/spacevim/addon-info.json
@@ -0,0 +1,6 @@
+{
+  "name": "SpaceVim",
+  "description": "\n\n                                                                          \n    /######                                     /##    /##/##             \n   /##__  ##                                   | ##   | #|__/             \n  | ##  \\__/ /######  /######  /####### /######| ##   | ##/##/######/#### \n  |  ###### /##__  ##|____  ##/##_____//##__  #|  ## / ##| #| ##_  ##_  ## \n   \\____  #| ##  \\ ## /######| ##     | ########\\  ## ##/| #| ## \\ ## \\ ## \n   /##  \\ #| ##  | ##/##__  #| ##     | ##_____/ \\  ###/ | #| ## | ## | ## \n  |  ######| #######|  ######|  ######|  #######  \\  #/  | #| ## | ## | ## \n   \\______/| ##____/ \\_______/\\_______/\\_______/   \\_/   |__|__/ |__/ |__/ \n           | ##                                                           \n           | ##                                                           \n           |__/                                                           ",
+  "author": "wsdjeg"
+}
+
diff --git a/bundle/spacevim/autoload/spacevimcn.vim b/bundle/spacevim/autoload/spacevimcn.vim
new file mode 100644
index 000000000..8b72a82aa
--- /dev/null
+++ b/bundle/spacevim/autoload/spacevimcn.vim
@@ -0,0 +1,58 @@
+"=============================================================================
+" SpaceVim.vim --- Initialization and core files for SpaceVim
+" Copyright (c) 2016-2020 Wang Shidong & Contributors
+" Author: Shidong Wang < wsdjeg at 163.com >
+" URL: https://spacevim.org
+" License: GPLv3
+"=============================================================================
+scriptencoding utf-8
+
+""
+" @section 简介, intro
+" @stylized spacevim
+" @library
+" @order intro options config layers usage api faq changelog
+" SpaceVim 是一个社区驱动的模块化 Vim 配置,这一思想概念起源于 Spacemacs。
+
+""
+" @section 选项, options
+" SpaceVim 使用 `~/.SpaceVim.d/init.toml` 作为默认的全局配置文件。所有的选项
+" 都可以在该文件中进行设置,同时,`~/.SpaceVim.d/` 将被加入 Vim
+" 的运行时(&rtp)内。因此,可以在该目录下创建私有的 Vim 脚本文件。SpaceVim
+" 也支持项目的本地配置,在项目的根目录下,`.SpaceVim.d/init.toml`
+" 即为默认的本地配置,`./SpaceVim./` 目录同样会被加入到 Vim
+" 的运行时(&rtp)内。
+"
+" 以下即为一个配置示例:
+" >
+"   [options]
+"     enable-guicolors = true
+"     max-column = 120
+" <
+
+""
+" @section default_indent, options-default_indent
+" @parentsection options
+" 设置默认的对齐具体,默认的值为 2。
+" >
+"   default_indent = 2
+" <
+
+""
+" 设置默认的对齐具体,默认的值为 2。
+" >
+"   let g:spacevim_default_indent = 2
+" <
+let g:spacevim_default_indent          = 2
+
+""
+" @section relativenumber, options-relativenumber
+" @parentsection options
+" 启用/禁用相对行号,相对行号可以用于快速上下多行移动,默认已启用。
+" >
+"   relativenumber = true
+" <
+
+""
+" 启用/禁用相对行号,相对行号可以用于快速上下多行移动,默认已启用。
+let g:spacevim_relativenumber          = 1
diff --git a/bundle/spacevim/doc/SpaceVim.txt b/bundle/spacevim/doc/SpaceVim.txt
new file mode 100644
index 000000000..eb9056529
--- /dev/null
+++ b/bundle/spacevim/doc/SpaceVim.txt
@@ -0,0 +1,74 @@
+*SpaceVim.txt*	
+
+                                                                          
+    /######                                     /##    /##/##             
+   /##__  ##                                   | ##   | #|__/             
+  | ##  \__/ /######  /######  /####### /######| ##   | ##/##/######/#### 
+  |  ###### /##__  ##|____  ##/##_____//##__  #|  ## / ##| #| ##_  ##_  ## 
+   \____  #| ##  \ ## /######| ##     | ########\  ## ##/| #| ## \ ## \ ## 
+   /##  \ #| ##  | ##/##__  #| ##     | ##_____/ \  ###/ | #| ## | ## | ## 
+  |  ######| #######|  ######|  ######|  #######  \  #/  | #| ## | ## | ## 
+   \______/| ##____/ \_______/\_______/\_______/   \_/   |__|__/ |__/ |__/ 
+           | ##                                                           
+           | ##                                                           
+           |__/                                                           
+wsdjeg                                                   *spacevim* *SpaceVim*
+
+==============================================================================
+CONTENTS                                                   *SpaceVim-contents*
+  1. 简介.......................................................|SpaceVim-intro|
+  2. 选项.....................................................|SpaceVim-options|
+      1. default_indent......................|SpaceVim-options-default_indent|
+      2. relativenumber......................|SpaceVim-options-relativenumber|
+  3. Configuration...........................................|SpaceVim-config|
+
+==============================================================================
+简介                                                            *SpaceVim-intro*
+
+SpaceVim 是一个社区驱动的模块化 Vim 配置,这一思想概念起源于 Spacemacs。
+
+==============================================================================
+选项                                                          *SpaceVim-options*
+
+SpaceVim 使用 `~/.SpaceVim.d/init.toml` 作为默认的全局配置文件。所有的选项
+都可以在该文件中进行设置,同时,`~/.SpaceVim.d/` 将被加入 Vim 的运行时(&rtp)内。因此,可以在该目录下创建私有的 Vim
+脚本文件。SpaceVim 也支持项目的本地配置,在项目的根目录下,`.SpaceVim.d/init.toml`
+即为默认的本地配置,`./SpaceVim./` 目录同样会被加入到 Vim 的运行时(&rtp)内。
+
+以下即为一个配置示例:
+>
+  [options]
+    enable-guicolors = true
+    max-column = 120
+<
+
+==============================================================================
+DEFAULT_INDENT                               *SpaceVim-options-default_indent*
+
+设置默认的对齐具体,默认的值为 2。
+>
+  default_indent = 2
+<
+
+==============================================================================
+RELATIVENUMBER                               *SpaceVim-options-relativenumber*
+
+启用/禁用相对行号,相对行号可以用于快速上下多行移动,默认已启用。
+>
+  relativenumber = true
+<
+
+==============================================================================
+CONFIGURATION                                                *SpaceVim-config*
+
+                                                   *g:spacevim_default_indent*
+设置默认的对齐具体,默认的值为 2。
+>
+  let g:spacevim_default_indent = 2
+<
+
+                                                   *g:spacevim_relativenumber*
+启用/禁用相对行号,相对行号可以用于快速上下多行移动,默认已启用。
+
+
+vim:tw=78:ts=8:ft=help:norl:
diff --git a/doc/SpaceVim.cnx b/doc/SpaceVim.cnx
deleted file mode 100644
index 07ddd44c3..000000000
--- a/doc/SpaceVim.cnx
+++ /dev/null
@@ -1,1430 +0,0 @@
-*SpaceVim.txt*	
-
-                                                                          
-    /######                                     /##    /##/##             
-   /##__  ##                                   | ##   | #|__/             
-  | ##  \__/ /######  /######  /####### /######| ##   | ##/##/######/#### 
-  |  ###### /##__  ##|____  ##/##_____//##__  #|  ## / ##| #| ##_  ##_  ## 
-   \____  #| ##  \ ## /######| ##     | ########\  ## ##/| #| ## \ ## \ ## 
-   /##  \ #| ##  | ##/##__  #| ##     | ##_____/ \  ###/ | #| ## | ## | ## 
-  |  ######| #######|  ######|  ######|  #######  \  #/  | #| ## | ## | ## 
-   \______/| ##____/ \_______/\_______/\_______/   \_/   |__|__/ |__/ |__/ 
-           | ##                                                           
-           | ##                                                           
-           |__/                                                           
-wsdjeg                                                   *spacevim* *SpaceVim*
-
-==============================================================================
-CONTENTS                                                   *SpaceVim-contents*
-  1. Introduction.............................................|SpaceVim-intro|
-  2. Options................................................|SpaceVim-options|
-      1. checkinstall..........................|SpaceVim-options-checkinstall|
-      2. default_indent......................|SpaceVim-options-default_indent|
-      3. enable_ale..............................|SpaceVim-options-enable_ale|
-      4. enable_googlesuggest..........|SpaceVim-options-enable_googlesuggest|
-      5. enable_guicolors..................|SpaceVim-options-enable_guicolors|
-      6. enable_insert_leader..........|SpaceVim-options-enable_insert_leader|
-      7. enable_neomake......................|SpaceVim-options-enable_neomake|
-      8. enable_statusline_mode......|SpaceVim-options-enable_statusline_mode|
-      9. enable_ycm..............................|SpaceVim-options-enable_ycm|
-      10. error_symbol.........................|SpaceVim-options-error_symbol|
-      11. guifont...................................|SpaceVim-options-guifont|
-      12. lint_on_the_fly...................|SpaceVim-options-lint_on_the_fly|
-      13. max_column.............................|SpaceVim-options-max_column|
-      14. plugin_bundle_dir...............|SpaceVim-options-plugin_bundle_dir|
-      15. plugin_manager_processes.|SpaceVim-options-plugin_manager_processes|
-      16. realtime_leader_guide.......|SpaceVim-options-realtime_leader_guide|
-      17. relativenumber.....................|SpaceVim-options-relativenumber|
-      18. sidebar_width.......................|SpaceVim-options-sidebar_width|
-      19. snippet_engine.....................|SpaceVim-options-snippet_engine|
-      20. windows_leader.....................|SpaceVim-options-windows_leader|
-  3. Configuration...........................................|SpaceVim-config|
-  4. Commands..............................................|SpaceVim-commands|
-  5. Functions............................................|SpaceVim-functions|
-  6. Layers..................................................|SpaceVim-layers|
-      1. autocomplete..................................|SpaceVim-autocomplete|
-      2. checkers....................................|SpaceVim-layer-checkers|
-      3. colorscheme....................................|SpaceVim-colorscheme|
-      4. core#statusline......................|SpaceVim-layer-core-statusline|
-      5. core#tabline............................|SpaceVim-layer-core-tabline|
-      6. exprfold....................................|SpaceVim-layer-exprfold|
-      7. format........................................|SpaceVim-layer-format|
-      8. github........................................|SpaceVim-layer-github|
-      9. incsearch..................................|SpaceVim-layer-incsearch|
-      10. indentmove...............................|SpaceVim-layer-indentmove|
-      11. lang#c.......................................|SpaceVim-layer-lang-c|
-      12. lang#crystal...........................|SpaceVim-layer-lang-crystal|
-      13. lang#csharp.............................|SpaceVim-layer-lang-csharp|
-      14. lang#elixir.............................|SpaceVim-layer-lang-elixir|
-      15. lang#elm...................................|SpaceVim-layer-lang-elm|
-      16. lang#go.....................................|SpaceVim-layer-lang-go|
-      17. lang#java.................................|SpaceVim-layer-lang-java|
-      18. lang#julia...............................|SpaceVim-layer-lang-julia|
-      19. lang#kotlin.............................|SpaceVim-layer-lang-kotlin|
-      20. lang#lua...................................|SpaceVim-layer-lang-lua|
-      21. lang#ocaml...............................|SpaceVim-layer-lang-ocaml|
-      22. lang#php...................................|SpaceVim-layer-lang-php|
-      23. lang#pony.................................|SpaceVim-layer-lang-pony|
-      24. lang#puppet.............................|SpaceVim-layer-lang-puppet|
-      25. lang#python.............................|SpaceVim-layer-lang-python|
-      26. lang#rust.................................|SpaceVim-layer-lang-rust|
-      27. lang#scala...............................|SpaceVim-layer-lang-scala|
-      28. lang#xml...................................|SpaceVim-layer-lang-xml|
-      29. operator...................................|SpaceVim-layer-operator|
-      30. shell.........................................|SpaceVim-layer-shell|
-      31. tmux...........................................|SpaceVim-layer-tmux|
-      32. tools#dash...............................|SpaceVim-layer-tools-dash|
-  7. API........................................................|SpaceVim-api|
-      1. cmdlinemenu................................|SpaceVim-api-cmdlinemenu|
-      2. data#list....................................|SpaceVim-api-data-list|
-      3. prompt..........................................|SpaceVim-api-prompt|
-      4. sid............................................|SpaceVim-api-vim-sid|
-      5. vim#message................................|SpaceVim-api-vim-message|
-  8. FAQ........................................................|SpaceVim-faq|
-  9. Changelog............................................|SpaceVim-changelog|
-
-==============================================================================
-INTRODUCTION                                                  *SpaceVim-intro*
-
-SpaceVim is a bundle of custom settings and plugins with a modular
-configuration for Vim. It was inspired by Spacemacs.
-
-
-==============================================================================
-OPTIONS                                                     *SpaceVim-options*
-
-SpaceVim uses `~/.SpaceVim.d/init.toml` as its default global config file. You
-can set all the SpaceVim options and layers in it. `~/.SpaceVim.d/` will also
-be added to runtimepath, so you can write your own scripts in it. SpaceVim
-also supports local config for each project. Place local config  settings in
-`.SpaceVim.d/init.toml` in the root directory of your project. `.SpaceVim.d/`
-will also be added to runtimepath.
-
-here is an example setting SpaceVim options:
->
-  [options]
-    enable-guicolors = true
-    max-column = 120
-<
-
-==============================================================================
-CHECKINSTALL                                   *SpaceVim-options-checkinstall*
-
-Enable/Disable checkinstall on SpaceVim startup. Default is true.
->
-  checkinstall = true
-<
-
-==============================================================================
-DEFAULT_INDENT                               *SpaceVim-options-default_indent*
-
-Change the default indentation of SpaceVim. Default is 2.
->
-  default_indent = 2
-<
-
-==============================================================================
-ENABLE_ALE                                       *SpaceVim-options-enable_ale*
-
-Use ale for syntax checking, disabled by default.
->
-  enable_ale = true
-<
-
-==============================================================================
-ENABLE_GOOGLESUGGEST                   *SpaceVim-options-enable_googlesuggest*
-
-Enable/Disable Google suggestions for neocomplete. Default is false.
->
-  enable_googlesuggest = false
-<
-
-==============================================================================
-ENABLE_GUICOLORS                           *SpaceVim-options-enable_guicolors*
-
-Enable true color support in terminal. Default is true.
->
-  enable_guicolors = true
-<
-
-==============================================================================
-ENABLE_INSERT_LEADER                   *SpaceVim-options-enable_insert_leader*
-
-Enable/Disable spacevim's insert mode leader, default is enable
-
-==============================================================================
-ENABLE_NEOMAKE                               *SpaceVim-options-enable_neomake*
-
-SpaceVim default checker is neomake. If you want to use syntastic, use:
->
-  enable_neomake = false
-<
-
-==============================================================================
-ENABLE_STATUSLINE_MODE               *SpaceVim-options-enable_statusline_mode*
-
-Enable/Disable display mode. Default is 0, mode will be displayed in
-statusline. To enable this feature:
->
-  enable_statusline_mode = true
-<
-
-==============================================================================
-ENABLE_YCM                                       *SpaceVim-options-enable_ycm*
-
-Enable/Disable YouCompleteMe. Default is false.
->
-  enable_ycm = true
-<
-
-==============================================================================
-ERROR_SYMBOL                                   *SpaceVim-options-error_symbol*
-
-Set the error symbol for SpaceVim's syntax maker. Default is '✖'.
->
-  error_symbol = "+"
-<
-
-==============================================================================
-GUIFONT                                             *SpaceVim-options-guifont*
-
-Set the guifont of SpaceVim. Default is empty.
->
-  guifont = "DejaVu\ Sans\ Mono\ for\ Powerline\ 11"
-<
-
-==============================================================================
-LINT_ON_THE_FLY                             *SpaceVim-options-lint_on_the_fly*
-
-Enable/Disable lint on the fly feature of SpaceVim's maker. Default is true.
->
-  lint_on_the_fly = false
-<
-
-==============================================================================
-MAX_COLUMN                                       *SpaceVim-options-max_column*
-
-Change the max number of columns for SpaceVim. Default is 120.
->
-  max_column = 120
-<
-
-==============================================================================
-PLUGIN_BUNDLE_DIR                         *SpaceVim-options-plugin_bundle_dir*
-
-Set the cache directory of plugins. Default is `~/.cache/vimfiles`.
->
-  plugin_bundle_dir = "~/.cache/vimplugs"
-<
-
-==============================================================================
-PLUGIN_MANAGER_PROCESSES           *SpaceVim-options-plugin_manager_processes*
-
-Set the max process of SpaceVim plugin manager
-
-==============================================================================
-REALTIME_LEADER_GUIDE                 *SpaceVim-options-realtime_leader_guide*
-
-Enable/Disable realtime leader guide. Default is true. to disable it:
->
-  realtime_leader_guide = false
-<
-
-==============================================================================
-RELATIVENUMBER                               *SpaceVim-options-relativenumber*
-
-Enable/Disable relativenumber, by default it is enabled.
->
-  relativenumber = true
-<
-
-==============================================================================
-SIDEBAR_WIDTH                                 *SpaceVim-options-sidebar_width*
-
-Set the width of the SpaceVim sidebar. Default is 30. This value will be used
-by tagbar and vimfiler.
-
-==============================================================================
-SNIPPET_ENGINE                               *SpaceVim-options-snippet_engine*
-
-Set the snippet engine of SpaceVim, default is neosnippet. to enable
-ultisnips:
->
-  snippet_engine = "ultisnips"
-<
-
-==============================================================================
-WINDOWS_LEADER                               *SpaceVim-options-windows_leader*
-
-Window functions leader for SpaceVim. Default is `s`.  Set to empty to disable
-this feature, or you can set to another char.
->
-  windows_leader = ""
-<
-
-==============================================================================
-CONFIGURATION                                                *SpaceVim-config*
-
-If you still want to use `~/.SpaceVim.d/init.vim` as configuration file,
-please take a look at the following options.
-
-
-                                                          *g:spacevim_version*
-Version of SpaceVim , this value can not be changed.
-
-                                                   *g:spacevim_default_indent*
-Change the default indentation of SpaceVim. Default is 2.
->
-  let g:spacevim_default_indent = 2
-<
-
-                                                       *g:spacevim_expand_tab*
-In Insert mode: Use the appropriate number of spaces to insert a <Tab>
-
-                                                   *g:spacevim_relativenumber*
-Enable/Disable relativenumber, by default it is enabled.
-
-                                                       *g:spacevim_max_column*
-Change the max number of columns for SpaceVim. Default is 120.
->
-  let g:spacevim_max_column = 120
-<
-
-                                                 *g:spacevim_enable_guicolors*
-Enable true color support in terminal. Default is 1.
->
-  let g:spacevim_enable_guicolors = 1
-<
-
-                                             *g:spacevim_enable_googlesuggest*
-Enable/Disable Google suggestions for neocomplete. Default is 0.
->
-  let g:spacevim_enable_googlesuggest = 1
-<
-
-                                                   *g:spacevim_windows_leader*
-Window functions leader for SpaceVim. Default is `s`.  Set to empty to disable
-this feature, or you can set to another char.
->
-  let g:spacevim_windows_leader = ''
-<
-
-                                             *g:spacevim_enable_insert_leader*
-Enable/Disable spacevim's insert mode leader, default is enable
-
-                                                *g:spacevim_plugin_bundle_dir*
-Set the cache directory of plugins. Default is `~/.cache/vimfiles`.
->
-  let g:spacevim_plugin_bundle_dir = '~/.cache/vimplugs'
-<
-
-                                            *g:spacevim_realtime_leader_guide*
-Enable/Disable realtime leader guide. Default is 1. to disable it:
->
-  let g:spacevim_realtime_leader_guide = 0
-<
-
-                                             *g:spacevim_enable_key_frequency*
-Enable/Disable key frequency catching of SpaceVim. default value is 0. to
-enable it:
->
-  let g:spacevim_enable_key_frequency = 1
-<
-
-                                              *g:spacevim_autocomplete_method*
-Set the autocomplete engine of spacevim, the default logic is:
->
-  if has('python3')
-    let g:spacevim_autocomplete_method = 'deoplete'
-  elseif has('lua')
-    let g:spacevim_autocomplete_method = 'neocomplete'
-  elseif has('python')
-    let g:spacevim_autocomplete_method = 'completor'
-  elseif has('timers')
-    let g:spacevim_autocomplete_method = 'asyncomplete'
-  else
-    let g:spacevim_autocomplete_method = 'neocomplcache'
-  endif
-<
-
-                                                   *g:spacevim_enable_neomake*
-SpaceVim default checker is neomake. If you want to use syntastic, use:
->
-  let g:spacevim_enable_neomake = 0
-<
-
-                                                       *g:spacevim_enable_ale*
-Use ale for syntax checking, disabled by default.
->
-  let g:spacevim_enable_ale = 1
-<
-
-                                                          *g:spacevim_guifont*
-Set the guifont of SpaceVim. Default is empty.
->
-  let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
-<
-
-                                                       *g:spacevim_enable_ycm*
-Enable/Disable YouCompleteMe. Default is 0.
->
-  let g:spacevim_enable_ycm = 1
-<
-
-                                                    *g:spacevim_sidebar_width*
-Set the width of the SpaceVim sidebar. Default is 30. This value will be used
-by tagbar and vimfiler.
-
-                                                   *g:spacevim_snippet_engine*
-Set the snippet engine of SpaceVim, default is neosnippet. to enable
-ultisnips:
->
-  let g:spacevim_snippet_engine = "ultisnips"
-<
-
-                                                *g:spacevim_enable_cursorline*
-Enable/Disable cursorline. Default is 1, cursorline will be highlighted in
-normal mode.To disable this feature:
->
-  let g:spacevim_enable_cursorline = 0
-<
-
-                                             *g:spacevim_statusline_separator*
-Set the statusline separators of statusline, default is 'arrow'
->
-  Separators options:
-    1. arrow
-    2. curve
-    3. slant
-    4. nil
-    5. fire
-<
-
-See more details in: http://spacevim.org/documentation/#statusline
-
-
-                                         *g:spacevim_statusline_left_sections*
-Define the left section of statusline in active windows. By default:
->
-  let g:spacevim_statusline_left_sections =
-    \ [
-    \ 'winnr',
-    \ 'filename',
-    \ 'major mode',
-    \ 'minor mode lighters',
-    \ 'version control info'
-    \ ]
-<
-
-                                        *g:spacevim_statusline_right_sections*
-Define the right section of statusline in active windows. By default:
->
-  g:spacevim_statusline_right_sections =
-    \ [
-    \ 'fileformat',
-    \ 'cursorpos',
-    \ 'percentage'
-    \ ]
-<
-
-                                       *g:spacevim_statusline_unicode_symbols*
-Enable/Disable unicode symbols in statusline
-
-                                  *g:spacevim_enable_language_specific_leader*
-Enable/Disable language specific leader, by default you can use `,` ket
-instead of `SPC` `l`.
-
-                                           *g:spacevim_enable_statusline_mode*
-Enable/Disable display mode. Default is 0, mode will be displayed in
-statusline. To enable this feature:
->
-  let g:spacevim_enable_statusline_mode = 1
-<
-
-                                             *g:spacevim_custom_color_palette*
-Set the statusline/tabline palette of color, default values depends on the
-theme
->
-  let g:spacevim_custom_color_palette = [
-    \ ['#282828', '#b8bb26', 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],
-    \ ]
-<
-
-
-                                              *g:spacevim_enable_cursorcolumn*
-Enable/Disable cursorcolumn. Default is 0, cursorcolumn will be highlighted in
-normal mode. To enable this feature:
->
-  let g:spacevim_enable_cursorcolumn = 1
-<
-
-                                                     *g:spacevim_error_symbol*
-Set the error symbol for SpaceVim's syntax maker. Default is '✖'.
->
-  let g:spacevim_error_symbol = '+'
-<
-
-                                                   *g:spacevim_warning_symbol*
-Set the warning symbol for SpaceVim's syntax maker. Default is '⚠'.
->
-  let g:spacevim_warning_symbol = '!'
-<
-
-                                                      *g:spacevim_info_symbol*
-Set the information symbol for SpaceVim's syntax maker. Default is '🛈'.
->
-  let g:spacevim_info_symbol = 'i'
-<
-
-                                            *g:spacevim_terminal_cursor_shape*
-Set the SpaceVim cursor shape in the terminal.
->
-  0 : to prevent Nvim from changing the cursor shape.
-  1 : to enable non-blinking mode-sensitive cursor.
-  2 : to enable blinking mode-sensitive cursor (default).
-<
-
->
-<
-Host terminal must support the DECSCUSR CSI escape sequence. Depending on the
-terminal emulator, using this option with nvim under tmux might require adding
-the following to ~/.tmux.conf:
->
-  set -ga terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'
-<
-
-                                                *g:spacevim_vim_help_language*
-Set the help language of vim. Default is 'en'.  You can change it to Chinese.
->
-  let g:spacevim_vim_help_language = 'cn'
-<
-
-                                                         *g:spacevim_language*
-Set the message language of vim. Default is 'en_US.UTF-8'.
->
-  let g:spacevim_language = 'en_CA.utf8'
-<
-
-                                                *g:spacevim_keep_server_alive*
-Option for keep the spacevim server ailive
-
-                                                      *g:spacevim_colorscheme*
-The colorscheme of SpaceVim. Default is 'gruvbox'.
-
-                                                   *g:spacevim_colorscheme_bg*
-The background of colorscheme. Default is 'dark'.
-
-                                              *g:spacevim_colorscheme_default*
-The default colorscheme of SpaceVim. Default is 'desert'.  This colorscheme
-will be used if the colorscheme set by  `g:spacevim_colorscheme` is not
-installed.
->
-  let g:spacevim_colorscheme_default = 'other_color'
-<
-
-                                                      *g:spacevim_simple_mode*
-Enable/disable simple mode of SpaceVim. Default is 0. In this mode, only few
-plugins will be installed.
->
-  let g:spacevim_simple_mode = 1
-<
-
-                                                      *g:spacevim_filemanager*
-The default file manager of SpaceVim. Default is 'vimfiler'.
-
-                                         *g:spacevim_plugin_manager_processes*
-Set the max process of SpaceVim plugin manager
-
-                                                     *g:spacevim_checkinstall*
-Enable/Disable checkinstall on SpaceVim startup. Default is 1.
->
-  let g:spacevim_checkinstall = 1
-<
-
-                                                    *g:spacevim_vimcompatible*
-Enable/Disable vimcompatible mode, by default it is disabled. In vimcompatible
-mode all vim origin key bindings will not be changed.
-
-Includes:
->
-  q       smart quit windows
-  s       windows key bindings leader
-  <C-x>   switch buffer
-<
-
-                                                     *g:spacevim_enable_debug*
-Enable/Disable debug mode for SpaceVim. Default is 0.
->
-  let g:spacevim_enable_debug = 1
-<
-
-                                            *g:spacevim_auto_disable_touchpad*
-Auto disable touchpad when switch to insert mode or focuslost in neovim.
-
-                                                      *g:spacevim_debug_level*
-Set the debug level of SpaceVim. Default is 1. see
-|SpaceVim#logger#setLevel()|
-
-                                                *g:spacevim_buffer_index_type*
-Set SpaceVim buffer index type, default is 0.
->
-  " types:
-  " 0: 1 ➛ ➊
-  " 1: 1 ➛ ➀
-  " 2: 1 ➛ ⓵
-  " 3: 1 ➛ ¹
-  " 4: 1 ➛ 1
-  let g:spacevim_buffer_index_type = 1
-<
-
-                                               *g:spacevim_windows_index_type*
-Set SpaceVim windows index type, default is 0.
->
-  " types:
-  " 0: 1 ➛ ➊
-  " 1: 1 ➛ ➀
-  " 2: 1 ➛ ⓵
-  " 3: 1 ➛ 1
-  let g:spacevim_windows_index_type = 1
-<
-
-                                     *g:spacevim_enable_tabline_filetype_icon*
-Enable/Disable tabline filetype icon. default is 0.
-
-                                        *g:spacevim_enable_os_fileformat_icon*
-Enable/Disable os fileformat icon. default is 0.
-
-                                                  *g:spacevim_github_username*
-Set the github username, It will be used for getting your starred repos, and
-fuzzy find the repo you want.
-
-                                               *g:spacevim_windows_smartclose*
-Set the default key for smart close windows, default is `q`.
-
-                                                 *g:spacevim_disabled_plugins*
-Disable plugins by name.
->
-  let g:spacevim_disabled_plugins = ['vim-foo', 'vim-bar']
-<
-
-                                                   *g:spacevim_custom_plugins*
-Add custom plugins.
->
-  let g:spacevim_custom_plugins = [
-              \ ['plasticboy/vim-markdown', 'on_ft' : 'markdown'],
-              \ ['wsdjeg/GitHub.vim'],
-              \ ]
-<
-
-                                                   *g:spacevim_filetype_icons*
-change the default filetype icon for a specific filtype.
->
-  let g:spacevim_filetype_icons['md'] = ''
-<
-
-                                              *g:spacevim_force_global_config*
-SpaceVim will load the global config after local config if set to 1. Default
-is 0. If you have a local config, the global config will not be loaded.
->
-  let g:spacevim_force_global_config = 1
-<
-
-                                           *g:spacevim_enable_powerline_fonts*
-Enable/Disable powerline symbols. Default is 1.
-
-                                                     *g:spacevim_lint_on_save*
-Enable/Disable lint on save feature of SpaceVim's maker. Default is 1.
->
-  let g:spacevim_lint_on_save = 0
-<
-
-                                          *g:spacevim_project_rooter_patterns*
-Set the project rooter patterns, by default it is `['.git/', '_darcs/',
-'.hg/', '.bzr/', '.svn/']`
-
-                                     *g:spacevim_project_rooter_automatically*
-Enable/Disable changing directory automatically. Enabled by default.
-
-                                                  *g:spacevim_lint_on_the_fly*
-Enable/Disable lint on the fly feature of SpaceVim's maker. Default is 0.
->
-  let g:spacevim_lint_on_the_fly = 0
-<
-
-                                          *g:spacevim_enable_vimfiler_welcome*
-Enable/Disable vimfiler in the welcome windows. Default is 1.  This will cause
-vim to start up slowly if there are too many files in the current directory.
->
-  let g:spacevim_enable_vimfiler_welcome = 0
-<
-
-                                        *g:spacevim_enable_vimfiler_gitstatus*
-Enable/Disable gitstatus column in vimfiler buffer, default is 0.
-
-                                     *g:spacevim_enable_vimfiler_filetypeicon*
-Enable/Disable filetypeicon column in vimfiler buffer, default is 0.
-
-                                              *g:spacevim_autocomplete_parens*
-Enable/Disable autocompletion of parentheses, default is 1 (enabled).
-
-                                                        *g:spacevim_hosts_url*
-The host file url. This option is for Chinese users who can not use Google and
-Twitter.
-
-                                                *g:neomake_echo_current_error*
-neomake/neomake {{{ This setting will echo the error for the line your cursor
-is on, if any.
-
-                                                            *g:ale_echo_delay*
-w0rp/ale {{{
-
-                                                     *g:github_issues_no_omni*
-jaxbot/github-issues.vim {{{ Disable completion by github-issues.vim. Because
-github-complete.vim provides more powerful completion.
-
-                                                          *g:github_dashboard*
-junegunn/vim-github-dashboard {{{
-
-                                                                  *g:dash_map*
-rizzatti/dash.vim {{{ Allows configuration of mappings between Vim filetypes
-and Dash's docsets.
-
-==============================================================================
-COMMANDS                                                   *SpaceVim-commands*
-
-:SPLayer {layers}                                                   *:SPLayer*
-  Load exist layer, {layers} can be a string of a layer name, or a list of
-  layer names.
-
-:SPVersion                                                        *:SPVersion*
-  Print the version of SpaceVim.  The following lines contain information
-  about which features were enabled.  When there is a preceding '+', the
-  feature is included, when there is a '-' it is excluded.
-
-:SPSet {opt} [value]                                                  *:SPSet*
-  Set or check SpaceVim option. {opt} should be the option name of spacevim,
-  This command will use [value] as the value of option name.
-
-:SPDebugInfo[!]                                                 *:SPDebugInfo*
-  print the debug information of spacevim, [!] forces the output into a new
-  buffer.
-
-:SPRuntimeLog                                                  *:SPRuntimeLog*
-  view runtime log
-
-:SPConfig                                                          *:SPConfig*
-  edit custom config file of SpaceVim, by default this command will open
-  global custom configuration file, '-l' option will load local custom
-  configuration file.
->
-    :SPConfig -g
-<
-
-:SPUpdate                                                          *:SPUpdate*
-  Command for update plugin, support completion of plugin name. If run without
-  argv, All the plugin will be updated.
->
-      :SPUpdate vim-airline
-<
-
-:SPReinstall                                                    *:SPReinstall*
-  Command for reinstall plugin, support completion of plugin name.
-
-:SPInstall                                                        *:SPInstall*
-  Command for install plugins.
-
-==============================================================================
-FUNCTIONS                                                 *SpaceVim-functions*
-
-SpaceVim#layers#load({layer})                         *SpaceVim#layers#load()*
-  Load the {layer} you want. For all the layers SpaceVim supports, see
-  |SpaceVim-layers|. the second argv is the layer variable.
-
-SpaceVim#logger#setLevel({level})                 *SpaceVim#logger#setLevel()*
-  Set debug level of SpaceVim. Default is 1.
-
-      1 : log all messages
-
-      2 : log warning and error messages
-
-      3 : log error messages only
-
-SpaceVim#logger#setOutput({file})                *SpaceVim#logger#setOutput()*
-  Set the log output file of SpaceVim. Default is empty.
-
-SpaceVim#plugins#iedit#start()                *SpaceVim#plugins#iedit#start()*
-  public API for iedit mode
->
-    KEY:
-    expr     match expression
-    word     match word
-    stack    cursor pos stack
-<
-  if only argv 1 is given, use selected word as pattern
-
-==============================================================================
-LAYERS                                                       *SpaceVim-layers*
-
-  SpaceVim support such layers:
-
-==============================================================================
-AUTOCOMPLETE                                           *SpaceVim-autocomplete*
-
-CODE COMPLETION
-SpaceVim uses neocomplete as the default completion engine if vim has lua
-support. If there is no lua support, neocomplcache will be used for the
-completion engine. SpaceVim uses deoplete as the default completion engine for
-neovim. Deoplete requires neovim to be compiled with python support. For more
-information on python support, please read neovim's |provider-python|.
-
-SpaceVim includes YouCompleteMe, but it is disabled by default. To enable ycm,
-see |g:spacevim_enable_ycm|.
-
-SNIPPET
-SpaceVim use neosnippet as the default snippet engine. The default snippets
-are provided by `Shougo/neosnippet-snippets`. For more information, please
-read |neosnippet|. Neosnippet support custom snippets, and the default
-snippets directory is `~/.SpaceVim/snippets/`. If
-`g:spacevim_force_global_config = 1`, SpaceVim will not append
-`./.SpaceVim/snippets` as default snippets directory.
-
-==============================================================================
-CHECKERS                                             *SpaceVim-layer-checkers*
-
-SpaceVim uses neomake as default syntax checker.
-
-==============================================================================
-COLORSCHEME                                             *SpaceVim-colorscheme*
-
-The ldefault colorscheme for SpaceVim is gruvbox. The colorscheme can be
-changed with the `g:spacevim_colorscheme` option by adding the following line
-to your `~/.SpaceVim/init.vim`.
->
-  let g:spacevim_colorscheme = 'solarized'
-<
-
-The following colorschemes are include in SpaceVim. If the colorscheme you
-want is not included in the list below, a PR is welcome.
-
-Also, there's one thing which everyone should know and pay attention to. NOT
-all of below colorschemes support spell check very well. For example, a
-colorscheme called atom doesn't support spell check very well.
-
-SpaceVim is not gonna fix them since these should be in charge of each author.
-
-==============================================================================
-CORE#STATUSLINE                               *SpaceVim-layer-core-statusline*
-
-This layer provides default statusline for SpaceVim If you want to use
-airline's statusline, just disable this layer
->
-  [[layers]]
-    name = "core#statusline"
-    enable = false
-<
-
-==============================================================================
-CORE#TABLINE                                     *SpaceVim-layer-core-tabline*
-
-This layer provides default tabline for SpaceVim If you want to use airline's
-tabline, just disable this layer
->
-  [[layers]]
-    name = "core#tabline"
-    enable = false
-<
-
-==============================================================================
-EXPRFOLD                                             *SpaceVim-layer-exprfold*
-
-Fold code quickly according to expr.
-
-Mappings:
->
-  Key         Mode            Function
-  ----------------------------------------------------
-  ZB          normal          Open fold block template
-  ZF          normal          Fold block
-  ZC          normal          Fold block comment
-<
-
-==============================================================================
-FORMAT                                                 *SpaceVim-layer-format*
-
-SpaceVim uses neoformat as the default code format tools. Neoformat uses a
-variety of formatters for many filetypes. for more info see |neoformat| if you
-want to run a formatter on save, just put this config into bootstrap function.
->
-  augroup fmt
-  autocmd!
-  autocmd BufWritePre * undojoin | Neoformat
-  augroup END
-<
-
-==============================================================================
-GITHUB                                                 *SpaceVim-layer-github*
-
-This layer provides GitHub integration for SpaceVim
-
-MAPPINGS
-
->
-  Mode      Key           Function
-  -------------------------------------------------------------
-  normal    SPC g h i     show issues
-  normal    SPC g h a     show activities
-  normal    SPC g h d     show dashboard
-  normal    SPC g h f     show current file in browser
-  normal    SPC g h I     show issues in browser
-  normal    SPC g h p     show PRs in browser
-<
-
-==============================================================================
-INCSEARCH                                           *SpaceVim-layer-incsearch*
-
-This layer improved incremental searching for neovim/vim
-
-mappings
->
-  key         mode        description
-  /           n/v         incsearch forward
-  ?           n/v         incsearch backward
-  g/          n/v         incsearch stay
-  n           n           nohlsearch n
-  N           n           nohlsearch N
-  *           n           nohlsearch *
-  g*          n           nohlsearch g*
-  #           n           nohlsearch #
-  g#          n           nohlsearch g#
-  z/          n           incsearch fuzzy /
-  z?          n           incsearch fuzzy ?
-  zg?         n           incsearch fuzzy g?
-  <Space>/    n           incsearch easymotion
-<
-
-==============================================================================
-INDENTMOVE                                         *SpaceVim-layer-indentmove*
-
-Move cursor quickly according to indent.
-
-MAPPINGS
-
->
-  Key         mode            function
-  -----------------------------------------------------------------
-  EH          normal/visual   move up to nearest line with smaller
-                              indent level
-  EL          normal/visual   move down to nearest line with larger
-                              indent level
-  EJ          normal/visual   move down to nearest line with smaller
-                              or same indent level
-  EK          normal/visual   move down to nearest line with larger
-                              or same indent level
-  EI          normal/visual   move down to nearest child indent
-<
-
-
-
-==============================================================================
-LANG#C                                                 *SpaceVim-layer-lang-c*
-
-This layer provides C family language code completion and syntax checking.
-Requires clang.
-
-Configuration for `tweekmonster/deoplete-clang2`:
-
-  1. Set the compile flags:
-
-      `let g:deoplete#sources#clang#flags = ['-Iwhatever', ...]`
-
-  2. Set the path to the clang executable:
-
-      `let g:deoplete#sources#clang#executable = '/usr/bin/clang'
-
-  3. `g:deoplete#sources#clang#autofill_neomake` is a boolean that tells this
-    plugin to fill in the `g:neomake_<filetype>_clang_maker` variable with the
-    clang executable path and flags. You will still need to enable it with
-    `g:neomake_<filetype>_enabled_make=['clang']`.
-
-  4. Set the standards for each language: `g:deoplete#sources#clang#std` is a
-    dict containing the standards you want to use. It's not used if you
-    already have `-std=whatever` in your flags. The defaults are:
-
->
-      {
-          'c': 'c11',
-          'cpp': 'c++1z',
-          'objc': 'c11',
-          'objcpp': 'c++1z',
-      }
-<
-  5. `g:deoplete#sources#clang#preproc_max_lines` sets the maximum number of
-    lines to search for an #ifdef or #endif line. #ifdef lines are discarded
-    to get completions within conditional preprocessor blocks. The default is
-    50,  setting it to 0 disables this feature.
-
-
-==============================================================================
-LANG#CRYSTAL                                     *SpaceVim-layer-lang-crystal*
-
-INTRO
-The lang#crystal layer provides crystal filetype detection and syntax
-highlight, crystal tool and crystal spec integration.
-
-==============================================================================
-LANG#CSHARP                                       *SpaceVim-layer-lang-csharp*
-
-This layer includes utilities and language-specific mappings for csharp
-development.
-
-KEY MAPPINGS
-
->
-  Mode            Key             Function
-  ---------------------------------------------
-  normal          SPC l b         compile the project
-  normal          SPC l f         format current file
-  normal          SPC l d         show doc
-  normal          SPC l e         rename symbol under cursor
-  normal          SPC l g g       go to definition
-  normal          SPC l g i       find implementations
-  normal          SPC l g t       find type
-  normal          SPC l g s       find symbols
-  normal          SPC l g u       find usages of symbol under cursor
-  normal          SPC l g m       find members in the current buffer
-  normal          SPC l s r       reload the solution
-  normal          SPC l s s       start the OmniSharp server
-  normal          SPC l s S       stop the OmniSharp server
-<
-
-==============================================================================
-LANG#ELIXIR                                       *SpaceVim-layer-lang-elixir*
-
-INTRO
-The lang#elixir layer provides code completion, documentation lookup, jump to
-definition, mix integration, and iex integration for Elixir. SpaceVim uses
-neomake as default syntax checker which is loaded in |SpaceVim-layer-checkers|
-
-==============================================================================
-LANG#ELM                                             *SpaceVim-layer-lang-elm*
-
-INTRO
-The lang#elm layer provides code completion, documentation lookup, jump to
-definition, mix integration, and iex integration for elm. SpaceVim uses
-neomake as default syntax checker which is loaded in |SpaceVim-layer-checkers|
-
-==============================================================================
-LANG#GO                                               *SpaceVim-layer-lang-go*
-
-This layer includes code completion and syntax checking for Go development.
-
-MAPPINGS
-
->
-  Mode            Key             Function
-  ---------------------------------------------
-  normal          SPC l a         go alternate
-  normal          SPC l b         go build
-  normal          SPC l c         go coverage
-  normal          SPC l d         go doc
-  normal          SPC l D         go doc vertical
-  normal          SPC l e         go rename
-  normal          SPC l g         go definition
-  normal          SPC l G         go generate
-  normal          SPC l h         go info
-  normal          SPC l i         go implements
-  normal          SPC l I         implement stubs
-  normal          SPC l k         add tags
-  normal          SPC l K         remove tags
-  normal          SPC l l         list declarations in file
-  normal          SPC l L         list declarations in dir
-  normal          SPC l m         format improts
-  normal          SPC l M         add import
-  normal          SPC l r         go referrers
-  normal          SPC l s         fill struct
-  normal          SPC l t         go test
-  normal          SPC l v         freevars
-  normal          SPC l x         go run
-<
-
-==============================================================================
-LANG#JAVA                                           *SpaceVim-layer-lang-java*
-
-This layer is for Java development.
-
-MAPPINGS
-
->
-  Import key bindings:
-
-  Mode      Key           Function
-  -------------------------------------------------------------
-  normal    <F4>          import class under cursor
-  insert    <F4>          import class under cursor
-  normal    SPC l I       import missing classes
-  normal    SPC l R       remove unused imports
-  normal    SPC l i       smart import class under cursor
-  insert    <c-j>I        import missing imports
-  insert    <c-j>R        remove unused imports
-  insert    <c-j>i        smart import class under cursor
-
-  Generate key bindings:
-
-  Mode      Key           Function
-  -------------------------------------------------------------
-  normal    SPC l g A    generate accessors
-  normal    SPC l g s    generate setter accessor
-  normal    SPC l g g    generate getter accessor
-  normal    SPC l g a    generate setter and getter accessor
-  normal    SPC l g t    generate toString function
-  normal    SPC l g e    generate equals and hashcode function
-  normal    SPC l g c    generate constructor
-  normal    SPC l g C    generate default constructor
-  insert    <c-j>s       generate setter accessor
-  insert    <c-j>g       generate getter accessor
-  insert    <c-j>a       generate getter and setter accessor
-  visual    SPC l g s    generate setter accessor
-  visual    SPC l g g    generate getter accessor
-  visual    SPC l g a    generate setter and getter accessor
-
-  Maven key bindings:
-
-  Mode      Key           Function
-  -------------------------------------------------------------
-  normal    SPC l m i           Run maven clean install
-  normal    SPC l m I       Run maven install
-  normal    SPC l m p       Run one already goal from list
-  normal    SPC l m r       Run maven goals
-  normal    SPC l m R       Run one maven goal
-  normal    SPC l m t       Run maven test
-
-  Jump key bindings:
-
-  Mode      Key           Function
-  -------------------------------------------------------------
-  normal    SPC l j a           jump to alternate file
-
-  REPL key bindings:
-
-  Mode      Key           Function
-  -------------------------------------------------------------
-  normal    SPC l s i       start a jshell inferior REPL process
-  normal    SPC l s b       send buffer and keep code buffer focused
-  normal    SPC l s l       send line and keep code buffer focused
-  normal    SPC l s s       send selection text and keep code buffer focused
-<
-CODE FORMATTING
-To make neoformat support java file, you should install uncrustify. or
-download google's formater jar from:
-https://github.com/google/google-java-format
-
-and set 'g:spacevim_layer_lang_java_formatter' to the path of the jar.
-
-==============================================================================
-LANG#JULIA                                         *SpaceVim-layer-lang-julia*
-
-The layer provides synatax highlight julia.  The completeion only works in
-nvim with deoplete. However, the julia-vim could not be load on-demanding  due
-to its LaTeXToUnicode feature.
-
-
-==============================================================================
-LANG#KOTLIN                                       *SpaceVim-layer-lang-kotlin*
-
-This layer is for kotlin development.
-
-==============================================================================
-LANG#LUA                                             *SpaceVim-layer-lang-lua*
-
-This layer includes utilities and language-specific mappings for lua
-development.
-
-MAPPINGS
-
->
-  Mode            Key             Function
-  ---------------------------------------------
-  normal          SPC l r         lua run
-<
-
-==============================================================================
-LANG#OCAML                                         *SpaceVim-layer-lang-ocaml*
-
-OCaml autocompletion provided by merlin.
-
-Requirements:
->
-  opam
-  merlin
-<
-
-==============================================================================
-LANG#PHP                                             *SpaceVim-layer-lang-php*
-
-This layer is for PHP development. It proides code completion, syntax
-checking, and jump to definition.
-
-Requirements:
->
-  PHP 5.3+
-  PCNTL Extension
-  Msgpack 0.5.7+(for NeoVim)Extension: https://github.com/msgpack/msgpack-php
-  JSON(for Vim 7.4+)Extension
-  Composer Project
-<
-
-==============================================================================
-LANG#PONY                                           *SpaceVim-layer-lang-pony*
-
-==============================================================================
-LANG#PUPPET                                       *SpaceVim-layer-lang-puppet*
-
-This layer is for Puppet development. It provides syntax highlighting and
-syntax checking.
-
-Requirements:
->
-  Puppet
-  Puppet Lint
-<
-
-==============================================================================
-LANG#PYTHON                                       *SpaceVim-layer-lang-python*
-
-To make this layer work well, you should install jedi.
-MAPPINGS
-
->
-  mode            key             function
-<
-
-==============================================================================
-LANG#RUST                                           *SpaceVim-layer-lang-rust*
-
-This layer is for Rust development.
-
-Requirements:
-
-  1. Racer needs a copy of the rust source. The easiest way to do this is with
-    rustup. Once rustup is installed, download the source with:
-
->
-      rustup component add rust-src
-<
-  2. Install racer:
-
->
-      cargo install racer
-<
-  3. Set the RUST_SRC_PATH variable in your .bashrc:
-
->
-      RUST_SRC_PATH=~/.multirust/toolchains/<change>/lib/rustlib/src/rust/src
-      export RUST_SRC_PATH
-<
-  4. Add racer to your path, or set the path with:
-
->
-      let g:racer_cmd = "/path/to/racer/bin"
-<
-
-MAPPINGS
-
->
-  Mode        Key         Function
-  -----------------------------------------------
-  normal      gd          rust-definition
-  normal      SPC l d     rust-doc
-  normal      SPC l r     execute current file
-  normal      SPC l s     rust-def-split
-  normal      SPC l x     rust-def-vertical
-<
-
-==============================================================================
-LANG#SCALA                                         *SpaceVim-layer-lang-scala*
-
-==============================================================================
-LANG#XML                                             *SpaceVim-layer-lang-xml*
-
-When editing an xml file, the omni func is xmlcomplete#CompleteTags. You can
-read the documentation in autoload/xmlcomplete.vim in the vim or neovim
-runtime directory.
-
-==============================================================================
-OPERATOR                                             *SpaceVim-layer-operator*
-
-With this layer, you can confirm that text is yanked correctly and see yanked
-text by highlighting.
-
-==============================================================================
-SHELL                                                   *SpaceVim-layer-shell*
-
-SpaceVim uses deol.nvim for shell support in neovim and uses vimshell for vim.
-For more info, read |deol| and |vimshell|.
-VARIABLE
-default_shell
-
-
-==============================================================================
-TMUX                                                     *SpaceVim-layer-tmux*
-
-Adds integration between tmux and vim panes. Switch between panes
-seamlessly.syntax highlighting, commenting, man page navigation and ability to
-execute lines as tmux commands. This layer is not added by default. To include
-it, add `SpaceVim#layers#load('tmux')` to your `~/.SpaceVim.d/init.vim`. If
-you are having issues with <C-h> in a neovim buffer, see
-`https://github.com/neovim/neovim/issues/2048#issuecomment-78045837`
-
-MAPPINGS
-
->
-  Key       Mode        Function
-  ------------------------------
-  <C-h>     normal      Switch to vim/tmux pane in left direction
-  <C-j>     normal      Switch to vim/tmux pane in down direction
-  <C-k>     normal      Switch to vim/tmux pane in up direction
-  <C-l>     normal      Switch to vim/tmux pane in right direction
-<
-
-==============================================================================
-TOOLS#DASH                                         *SpaceVim-layer-tools-dash*
-
-This layer provides Dash integration for SpaceVim
-
-==============================================================================
-API                                                             *SpaceVim-api*
-
-SpaceVim contains a variety of public apis. here is a list of all the apis.
-USAGE
-This is just an example, and it works well in old version vim.
->
-  let s:json = SpaceVim#api#import('data#json')
-  let rst = s:json.json_encode(onject)
-  let rst = s:json.json_decode(string)
-<
-
-==============================================================================
-CMDLINEMENU                                         *SpaceVim-api-cmdlinemenu*
-
-menu({items})
-
-Create a cmdline selection menu from a list of {items}, each item should be a
-list of two value in it, first one is the description, and the next one should
-be a funcrc.
-
-==============================================================================
-DATA#LIST                                             *SpaceVim-api-data-list*
-
-pop({list})
-
-Removes the last element from {list} and returns the element, as if the {list}
-is a stack.
-
-push({list})
-
-Appends {val} to the end of {list} and returns the list itself, as if the
-{list} is a stack.
-
-listpart({list}, {start}[, {len}])
-
-The result is a List, which is part of {list}, starting from index {start},
-with the length {len}
-
-==============================================================================
-PROMPT                                                   *SpaceVim-api-prompt*
-
-open()
-
-Create a cmdline prompt, use while loop to get the input from user. The
-default mapping for prompt is:
->
-  <Bs>            remove last character
-  <C-w>           remove the Word before the cursor
-  <C-u>           remove the Line before the cursor
-  <C-k>           remove the Line after the cursor
-  <C-a> / <Home>  Go to the beginning of the line
-  <C-e> / <End>   Go to the end of the line
-<
-
-==============================================================================
-SID                                                     *SpaceVim-api-vim-sid*
-
-" Capture command
-
-==============================================================================
-VIM#MESSAGE                                         *SpaceVim-api-vim-message*
-
-==============================================================================
-FAQ                                                             *SpaceVim-faq*
-
-  1. How do I enable YouCompleteMe?
-
->
-  I do not recommend using YouCompleteMe.
-  It is too big as a vim plugin. Also, I do not like using submodules in a vim
-  plugin. It is hard to manage with a plugin manager.
-
-  Step 1: Add `let g:spacevim_enable_ycm = 1` to custom_config. By default
-  it should be `~/.SpaceVim.d/init.vim`.
-
-  Step 2: Get into the directory of YouCompleteMe's author. By default it
-  should be `~/.cache/vimfiles/repos/github.com/Valloric/`. If you find the
-  directory `YouCompleteMe` in it, go into it. Otherwise clone
-  YouCompleteMe repo by
-  `git clone https://github.com/Valloric/YouCompleteMe.git`. After cloning,
-  get into it and run `git submodule update --init --recursive`.
-
-  Step 3: Compile YouCompleteMe with the features you want. If you just want
-  C family support, run `./install.py --clang-completer`.
-<
-
-  2. How to add custom snippet?
-
->
-  SpaceVim uses neosnippet as the default snippet engine. If you want to add
-  a snippet for a vim filetype, open a vim file and run `:NeoSnippetEdit`
-  command. A buffer will be opened and you can add your custom snippet.
-  By default this buffer will be save in `~/.SpaceVim/snippets`.
-  If you want to use another directory:
-
-  let g:neosnippet#snippets_directory = '~/path/to/snip_dir'
-
-  For more info about how to write snippet, please
-  read |neosnippet-snippet-syntax|.
-<
-
-  3. Where is `<c-f>` in cmdline-mode?
-
->
-  `<c-f>` is the default value of |cedit| option, but in SpaceVim we use that
-  binding as `<Right>`, so maybe you can change the `cedit` option or use
-  `<leader>+<c-f>`.
-<
-
-  4. How to use `<Space>` as `<Leader>`?
-
->
-  Add `let mapleader = "\<Space>"` to `~/.SpaceVim.d/init.vim`
-<
-
-==============================================================================
-CHANGELOG                                                 *SpaceVim-changelog*
-
-Following HEAD: changes in master branch since last release v0.7.0
-
-https://github.com/SpaceVim/SpaceVim/wiki/Following-HEAD
-
-2018-03-19: v0.7.0
-
-https://spacevim.org/SpaceVim-release-v0.7.0/
-
-
-vim:tw=78:ts=8:ft=help:norl:
diff --git a/doc/SpaceVim.cnx b/doc/SpaceVim.cnx
new file mode 120000
index 000000000..3141648a1
--- /dev/null
+++ b/doc/SpaceVim.cnx
@@ -0,0 +1 @@
+bundle/spacevim/doc/SpaceVim.txt
\ No newline at end of file
diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt
index 803da98f1..4a017f097 100644
--- a/doc/SpaceVim.txt
+++ b/doc/SpaceVim.txt
@@ -98,85 +98,99 @@ CONTENTS                                                   *SpaceVim-contents*
       13. lang#agda.................................|SpaceVim-layer-lang-agda|
       14. lang#asciidoc.........................|SpaceVim-layer-lang-asciidoc|
       15. lang#asepctj...........................|SpaceVim-layer-lang-asepctj|
-      16. lang#batch...............................|SpaceVim-layer-lang-batch|
-      17. lang#c.......................................|SpaceVim-layer-lang-c|
-      18. lang#chapel.............................|SpaceVim-layer-lang-chapel|
-      19. lang#clojure...........................|SpaceVim-layer-lang-clojure|
-      20. lang#coffeescript.................|SpaceVim-layer-lang-coffeescript|
-      21. lang#crystal...........................|SpaceVim-layer-lang-crystal|
-      22. lang#csharp.............................|SpaceVim-layer-lang-csharp|
-      23. lang#d.......................................|SpaceVim-layer-lang-d|
-      24. lang#dart.................................|SpaceVim-layer-lang-dart|
-      25. lang#dockerfile.....................|SpaceVim-layer-lang-dockerfile|
-      26. lang#eiffel.............................|SpaceVim-layer-lang-eiffel|
-      27. lang#elixir.............................|SpaceVim-layer-lang-elixir|
-      28. lang#elm...................................|SpaceVim-layer-lang-elm|
-      29. lang#erlang.............................|SpaceVim-layer-lang-erlang|
-      30. lang#extra...............................|SpaceVim-layer-lang-extra|
-      31. lang#foxpro.............................|SpaceVim-layer-lang-foxpro|
-      32. lang#fsharp.............................|SpaceVim-layer-lang-fsharp|
-      33. lang#go.....................................|SpaceVim-layer-lang-go|
-      34. lang#goby.................................|SpaceVim-layer-lang-goby|
-      35. lang#gosu.................................|SpaceVim-layer-lang-gosu|
-      36. lang#graphql...........................|SpaceVim-layer-lang-graphql|
-      37. lang#groovy.............................|SpaceVim-layer-lang-groovy|
-      38. lang#hack.................................|SpaceVim-layer-lang-hack|
-      39. lang#haskell...........................|SpaceVim-layer-lang-haskell|
-      40. lang#html.................................|SpaceVim-layer-lang-html|
-      41. lang#hy.....................................|SpaceVim-layer-lang-hy|
-      42. lang#idris...............................|SpaceVim-layer-lang-idris|
-      43. lang#j.......................................|SpaceVim-layer-lang-j|
-      44. lang#janet...............................|SpaceVim-layer-lang-janet|
-      45. lang#java.................................|SpaceVim-layer-lang-java|
-      46. lang#javascript.....................|SpaceVim-layer-lang-javascript|
-      47. lang#json.................................|SpaceVim-layer-lang-json|
-      48. lang#julia...............................|SpaceVim-layer-lang-julia|
-      49. lang#kotlin.............................|SpaceVim-layer-lang-kotlin|
-      50. lang#lisp.................................|SpaceVim-layer-lang-lisp|
-      51. lang#livescript.....................|SpaceVim-layer-lang-livescript|
-      52. lang#lua...................................|SpaceVim-layer-lang-lua|
-      53. lang#moonscript.....................|SpaceVim-layer-lang-moonscript|
-      54. lang#nim...................................|SpaceVim-layer-lang-nim|
-      55. lang#nix...................................|SpaceVim-layer-lang-nix|
-      56. lang#ocaml...............................|SpaceVim-layer-lang-ocaml|
-      57. lang#pact.................................|SpaceVim-layer-lang-pact|
-      58. lang#php...................................|SpaceVim-layer-lang-php|
-      59. lang#pony.................................|SpaceVim-layer-lang-pony|
-      60. lang#processing.....................|SpaceVim-layer-lang-processing|
-      61. lang#prolog.............................|SpaceVim-layer-lang-prolog|
-      62. lang#puppet.............................|SpaceVim-layer-lang-puppet|
-      63. lang#python.............................|SpaceVim-layer-lang-python|
-      64. lang#racket.............................|SpaceVim-layer-lang-racket|
-      65. lang#racket................................|SpaceVim-layer-lang-red|
-      66. lang#ring....................................|SpaceVim-layer-lang-r|
-      67. lang#ring.................................|SpaceVim-layer-lang-ring|
-      68. lang#ruby.................................|SpaceVim-layer-lang-ruby|
-      69. lang#rust.................................|SpaceVim-layer-lang-rust|
-      70. lang#scala...............................|SpaceVim-layer-lang-scala|
-      71. lang#scheme.............................|SpaceVim-layer-lang-scheme|
-      72. lang#sh.....................................|SpaceVim-layer-lang-sh|
-      73. lang#sml...................................|SpaceVim-layer-lang-sml|
-      74. lang#swig................................|SpaceVim-layer-lang-swift|
-      75. lang#swig.................................|SpaceVim-layer-lang-swig|
-      76. lang#tcl...................................|SpaceVim-layer-lang-tcl|
-      77. lang#toml.................................|SpaceVim-layer-lang-toml|
-      78. lang#typescript.....................|SpaceVim-layer-lang-typescript|
-      79. lang#v.......................................|SpaceVim-layer-lang-v|
-      80. lang#vbnet...............................|SpaceVim-layer-lang-vbnet|
-      81. lang#xml...................................|SpaceVim-layer-lang-xml|
-      82. lang#xquery.............................|SpaceVim-layer-lang-xquery|
-      83. language server protocol........................|SpaceVim-layer-lsp|
-      84. leaderf.....................................|SpaceVim-layer-leaderf|
-      85. operator...................................|SpaceVim-layer-operator|
-      86. shell.........................................|SpaceVim-layer-shell|
-      87. test...........................................|SpaceVim-layer-test|
-      88. tmux...........................................|SpaceVim-layer-tmux|
-      89. tools#dash...............................|SpaceVim-layer-tools-dash|
-      90. tools#zeal...............................|SpaceVim-layer-tools-zeal|
+      16. lang#assembly.........................|SpaceVim-layer-lang-assembly|
+      17. lang#autohotkey.....................|SpaceVim-layer-lang-autohotkey|
+      18. lang#batch...............................|SpaceVim-layer-lang-batch|
+      19. lang#c.......................................|SpaceVim-layer-lang-c|
+      20. lang#chapel.............................|SpaceVim-layer-lang-chapel|
+      21. lang#clojure...........................|SpaceVim-layer-lang-clojure|
+      22. lang#coffeescript.................|SpaceVim-layer-lang-coffeescript|
+      23. lang#crystal...........................|SpaceVim-layer-lang-crystal|
+      24. lang#csharp.............................|SpaceVim-layer-lang-csharp|
+      25. lang#d.......................................|SpaceVim-layer-lang-d|
+      26. lang#dart.................................|SpaceVim-layer-lang-dart|
+      27. lang#dockerfile.....................|SpaceVim-layer-lang-dockerfile|
+      28. lang#e.......................................|SpaceVim-layer-lang-e|
+      29. lang#eiffel.............................|SpaceVim-layer-lang-eiffel|
+      30. lang#elixir.............................|SpaceVim-layer-lang-elixir|
+      31. lang#elm...................................|SpaceVim-layer-lang-elm|
+      32. lang#erlang.............................|SpaceVim-layer-lang-erlang|
+      33. lang#extra...............................|SpaceVim-layer-lang-extra|
+      34. lang#forth...............................|SpaceVim-layer-lang-forth|
+      35. lang#fortran...........................|SpaceVim-layer-lang-fortran|
+      36. lang#foxpro.............................|SpaceVim-layer-lang-foxpro|
+      37. lang#fsharp.............................|SpaceVim-layer-lang-fsharp|
+      38. lang#go.....................................|SpaceVim-layer-lang-go|
+      39. lang#goby.................................|SpaceVim-layer-lang-goby|
+      40. lang#gosu.................................|SpaceVim-layer-lang-gosu|
+      41. lang#graphql...........................|SpaceVim-layer-lang-graphql|
+      42. lang#groovy.............................|SpaceVim-layer-lang-groovy|
+      43. lang#hack.................................|SpaceVim-layer-lang-hack|
+      44. lang#haskell...........................|SpaceVim-layer-lang-haskell|
+      45. lang#html.................................|SpaceVim-layer-lang-html|
+      46. lang#hy.....................................|SpaceVim-layer-lang-hy|
+      47. lang#idris...............................|SpaceVim-layer-lang-idris|
+      48. lang#io.....................................|SpaceVim-layer-lang-io|
+      49. lang#j.......................................|SpaceVim-layer-lang-j|
+      50. lang#janet...............................|SpaceVim-layer-lang-janet|
+      51. lang#java.................................|SpaceVim-layer-lang-java|
+      52. lang#javascript.....................|SpaceVim-layer-lang-javascript|
+      53. lang#json.................................|SpaceVim-layer-lang-json|
+      54. lang#julia...............................|SpaceVim-layer-lang-julia|
+      55. lang#kotlin.............................|SpaceVim-layer-lang-kotlin|
+      56. lang#latex...............................|SpaceVim-layer-lang-latex|
+      57. lang#lisp.................................|SpaceVim-layer-lang-lisp|
+      58. lang#livescript.....................|SpaceVim-layer-lang-livescript|
+      59. lang#lua...................................|SpaceVim-layer-lang-lua|
+      60. lang#markdown.........................|SpaceVim-layer-lang-markdown|
+      61. lang#moonscript.....................|SpaceVim-layer-lang-moonscript|
+      62. lang#nim...................................|SpaceVim-layer-lang-nim|
+      63. lang#nix...................................|SpaceVim-layer-lang-nix|
+      64. lang#ocaml...............................|SpaceVim-layer-lang-ocaml|
+      65. lang#pact.................................|SpaceVim-layer-lang-pact|
+      66. lang#pascal.............................|SpaceVim-layer-lang-pascal|
+      67. lang#perl.................................|SpaceVim-layer-lang-perl|
+      68. lang#php...................................|SpaceVim-layer-lang-php|
+      69. lang#pony.................................|SpaceVim-layer-lang-pony|
+      70. lang#processing.....................|SpaceVim-layer-lang-processing|
+      71. lang#prolog.............................|SpaceVim-layer-lang-prolog|
+      72. lang#puppet.............................|SpaceVim-layer-lang-puppet|
+      73. lang#purescript.....................|SpaceVim-layer-lang-purescript|
+      74. lang#python.............................|SpaceVim-layer-lang-python|
+      75. lang#racket.............................|SpaceVim-layer-lang-racket|
+      76. lang#racket................................|SpaceVim-layer-lang-red|
+      77. lang#reason.............................|SpaceVim-layer-lang-reason|
+      78. lang#ring....................................|SpaceVim-layer-lang-r|
+      79. lang#ring.................................|SpaceVim-layer-lang-ring|
+      80. lang#ruby.................................|SpaceVim-layer-lang-ruby|
+      81. lang#rust.................................|SpaceVim-layer-lang-rust|
+      82. lang#scala...............................|SpaceVim-layer-lang-scala|
+      83. lang#scheme.............................|SpaceVim-layer-lang-scheme|
+      84. lang#sh.....................................|SpaceVim-layer-lang-sh|
+      85. lang#sml...................................|SpaceVim-layer-lang-sml|
+      86. lang#swig................................|SpaceVim-layer-lang-swift|
+      87. lang#swig.................................|SpaceVim-layer-lang-swig|
+      88. lang#tcl...................................|SpaceVim-layer-lang-tcl|
+      89. lang#toml.................................|SpaceVim-layer-lang-toml|
+      90. lang#typescript.....................|SpaceVim-layer-lang-typescript|
+      91. lang#v.......................................|SpaceVim-layer-lang-v|
+      92. lang#vbnet...............................|SpaceVim-layer-lang-vbnet|
+      93. lang#wolfram...........................|SpaceVim-layer-lang-wolfram|
+      94. lang#xml...................................|SpaceVim-layer-lang-xml|
+      95. lang#xquery.............................|SpaceVim-layer-lang-xquery|
+      96. language server protocol........................|SpaceVim-layer-lsp|
+      97. leaderf.....................................|SpaceVim-layer-leaderf|
+      98. operator...................................|SpaceVim-layer-operator|
+      99. shell.........................................|SpaceVim-layer-shell|
+      100. test..........................................|SpaceVim-layer-test|
+      101. tmux..........................................|SpaceVim-layer-tmux|
+      102. tools#dash..............................|SpaceVim-layer-tools-dash|
+      103. tools#zeal..............................|SpaceVim-layer-tools-zeal|
   7. Usage....................................................|SpaceVim-usage|
-      1. custom_plugins........................|SpaceVim-usage-custom_plugins|
-      2. repl............................................|SpaceVim-usage-repl|
-      3. tasks..........................................|SpaceVim-usage-tasks|
+      1. buffers-and-files..................|SpaceVim-usage-buffers-and-files|
+      2. custom_plugins........................|SpaceVim-usage-custom_plugins|
+      3. repl............................................|SpaceVim-usage-repl|
+      4. tasks..........................................|SpaceVim-usage-tasks|
   8. API........................................................|SpaceVim-api|
       1. cmdlinemenu................................|SpaceVim-api-cmdlinemenu|
       2. data#dict....................................|SpaceVim-api-data-dict|
@@ -1602,6 +1616,24 @@ This layer provides syntax highlighting for asepctj. To enable this layer:
     name = "lang#asepctj"
 <
 
+==============================================================================
+LANG#ASSEMBLY                                   *SpaceVim-layer-lang-assembly*
+
+This layer provides syntax highlighting for assembly. To enable this layer:
+>
+  [layers]
+    name = "lang#assembly"
+<
+
+==============================================================================
+LANG#AUTOHOTKEY                               *SpaceVim-layer-lang-autohotkey*
+
+This layer provides syntax highlighting for autohotkey. To enable this layer:
+>
+  [layers]
+    name = "lang#autohotkey"
+<
+
 ==============================================================================
 LANG#BATCH                                         *SpaceVim-layer-lang-batch*
 
@@ -1729,12 +1761,43 @@ KEY BINDINGS
 ==============================================================================
 LANG#CLOJURE                                     *SpaceVim-layer-lang-clojure*
 
-This layer provides syntax highlighting for clojure. To enable this layer:
+This layer provides clojure language support in SpaceVim. Including syntax
+highlighting, code indent, code runner and REPL. This layer is not enabled by
+default, To enable this layer:
 >
   [layers]
     name = "lang#clojure"
 <
 
+LAYER OPTIONS
+
+  1. `clojure_interpreter`: Set the clojure interpreter, by default, it is
+`clojure`
+>
+  [[layers]]
+    name = 'lang#clojure'
+    clojure_interpreter = 'path/to/clojure'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+This layer also provides REPL support for clojure, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
 ==============================================================================
 LANG#COFFEESCRIPT                           *SpaceVim-layer-lang-coffeescript*
 
@@ -1901,6 +1964,18 @@ INTRO
 
 The lang#dockerfile layer provides syntax highlighting for dockerfile.
 
+==============================================================================
+LANG#E                                                 *SpaceVim-layer-lang-e*
+
+INTRO
+
+This layer includes utilities and language-specific mappings for e
+development. By default it is disabled, to enable this layer:
+>
+  [layers]
+    name = "lang#e"
+<
+
 ==============================================================================
 LANG#EIFFEL                                       *SpaceVim-layer-lang-eiffel*
 
@@ -1916,7 +1991,7 @@ KEY BINDINGS
 >
   Key             Function
   -----------------------------
-  SPC l
+  SPC l c         run eclean
 <
 
 
@@ -2028,6 +2103,54 @@ programming language. includes:
 
     isundil/vim-irssi-syntax syntax highlighting for irssi config
 
+==============================================================================
+LANG#FORTH                                         *SpaceVim-layer-lang-forth*
+
+This layer is for forth development, disabled by default, to enable this
+layer, add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#forth'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+
+==============================================================================
+LANG#FORTRAN                                     *SpaceVim-layer-lang-fortran*
+
+This layer is for fortran development, disabled by default, to enable this
+layer, add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#fortran'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+This layer also provides REPL support for fortran, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
 ==============================================================================
 LANG#FOXPRO                                       *SpaceVim-layer-lang-foxpro*
 
@@ -2346,6 +2469,35 @@ This layer also provides REPL support for idris, the key bindings are:
 <
 
 
+==============================================================================
+LANG#IO                                               *SpaceVim-layer-lang-io*
+
+This layer is for io development, disabled by default, to enable this layer,
+add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#io'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+This layer also provides REPL support for io, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
 ==============================================================================
 LANG#J                                                 *SpaceVim-layer-lang-j*
 
@@ -2630,6 +2782,45 @@ This layer also provides REPL support for kotlin, the key bindings are:
 <
 
 
+==============================================================================
+LANG#LATEX                                         *SpaceVim-layer-lang-latex*
+
+This layer is for latex development, disabled by default, to enable this
+layer, add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#latex'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l i         vimtex-info
+  normal          SPC l I         vimtex-info-full
+  normal          SPC l t         vimtex-toc-open
+  normal          SPC l T         vimtex-toc-toggle
+  normal          SPC l y         vimtex-labels-open
+  normal          SPC l Y         vimtex-labels-toggle
+  normal          SPC l v         vimtex-view
+  normal          SPC l r         vimtex-reverse-search
+  normal          SPC l l         vimtex-compile
+  normal          SPC l L         vimtex-compile-selected
+  normal          SPC l k         vimtex-stop
+  normal          SPC l K         vimtex-stop-all
+  normal          SPC l e         vimtex-errors
+  normal          SPC l o         vimtex-compile-output
+  normal          SPC l g         vimtex-status
+  normal          SPC l G         vimtex-status-all
+  normal          SPC l c         vimtex-clean
+  normal          SPC l C         vimtex-clean-full
+  normal          SPC l m         vimtex-imaps-list
+  normal          SPC l x         vimtex-reload
+  normal          SPC l X         vimtex-reload-state
+  normal          SPC l s         vimtex-toggle-main
+<
+
 ==============================================================================
 LANG#LISP                                           *SpaceVim-layer-lang-lisp*
 
@@ -2718,6 +2909,25 @@ This layer also provides REPL support for lua, the key bindings are:
 <
 
 
+==============================================================================
+LANG#MARKDOWN                                   *SpaceVim-layer-lang-markdown*
+
+This layer is for markdown language, disabled by default, to enable this
+layer, add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#markdown'
+<
+LAYER OPTIONS
+
+  1. `enabled_formater`: Set the enabled formater, by default it is
+    `['remark']`.
+  2. `enableWcwidth`: Enable/disabled wcwidth option, it is disabled by
+    default.
+  3. `listItemChar`: Set the default list item char, it is `-` by default.
+  4. `listItemIndent`: Set the default indent of list item. It is `1` by
+    default.
+
 ==============================================================================
 LANG#MOONSCRIPT                               *SpaceVim-layer-lang-moonscript*
 
@@ -2827,6 +3037,63 @@ This layer also provides REPL support for pact, the key bindings are:
 <
 
 
+==============================================================================
+LANG#PASCAL                                       *SpaceVim-layer-lang-pascal*
+
+This layer is for pascal development, disabled by default, to enable this
+layer, add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#pascal'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+==============================================================================
+LANG#PERL                                           *SpaceVim-layer-lang-perl*
+
+This layer is for perl development, disabled by default, to enable this layer,
+add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#perl'
+<
+
+LAYER OPTIONS
+
+  1. `perl_interpreter`: Set the perl interpreter, by default, it is `perl`
+
+>
+  [[layers]]
+    name = 'lang#perl'
+    perl_interpreter = 'path/to/perl'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+This layer also provides REPL support for perl, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
 ==============================================================================
 LANG#PHP                                             *SpaceVim-layer-lang-php*
 
@@ -2917,6 +3184,28 @@ layer, add following snippet to your SpaceVim configuration file.
     name = 'lang#prolog'
 <
 
+KEY BINDINGS
+
+
+>
+  Key             Function
+  --------------------------------
+  SPC l r         run current file
+<
+
+The default code runner command is `swipl -q -f %s -t main`, `%s` will be
+replaced to the path of current file.
+
+This layer also provides REPL support for prolog, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
 
 ==============================================================================
 LANG#PUPPET                                       *SpaceVim-layer-lang-puppet*
@@ -2931,15 +3220,106 @@ Requirements:
 <
 
 ==============================================================================
-LANG#PYTHON                                       *SpaceVim-layer-lang-python*
+LANG#PURESCRIPT                               *SpaceVim-layer-lang-purescript*
+
+This layer provides purescript language support for SpaceVim. Includding
+syntax highlighting, code formatting and code completion. This layer is not
+enabled by default, to enable this layer, add following snippet into SpaceVim
+configuration file:
+>
+  [[layers]]
+    name = 'lang#purescript'
+<
+KEY BINDINGS
 
-To make this layer work well, you should install jedi.
-MAPPINGS
 
 >
-  mode            key             function
+  Key             Function
+  --------------------------------
+  SPC l L         list loaded modules
+  SPC l l         reset loaded modules and load externs
+  SPC l R         rebuild current buffer
+  SPC l f         generate function template
+  SPC l t         add type annotation
+  SPC l a         apply current line suggestion
+  SPC l A         apply all suggestions
+  SPC l C         add case expression
+  SPC l i         import module
+  SPC l p         search pursuit for cursor ident
+  SPC l T         find type of cursor ident
 <
 
+This layer also provides REPL support for purescript, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
+==============================================================================
+LANG#PYTHON                                       *SpaceVim-layer-lang-python*
+
+This layer provides python language support for SpaceVim. Includding syntax
+highlighting, code formatting and code completion. This layer is not enabled
+by default, to enable this layer, add following snippet into SpaceVim
+configuration file:
+>
+  [[layers]]
+    name = 'lang#python'
+<
+
+OPTIONS
+
+  1. python_file_head: the default file head for python source code.
+
+>
+  [layers]
+    name = "lang#python"
+    python_file_head = [
+      '#!/usr/bin/python3',
+      '# -*- coding : utf-8 -*-'
+      ''
+    ]
+<
+  2. `python_interpreter`: Set the interpreter of python.
+
+>
+  [[layers]]
+    name = 'lang#python'
+    python_interpreter = '~/download/bin/python3'
+<
+  3. format_on_save: enable/disable code formation when save python file. This
+options is disabled by default, to enable it:
+>
+  [[layers]]
+    name = 'lang#python'
+    format_on_save = true
+<
+
+KEY BINDINGS
+
+
+>
+  Key             Function
+  --------------------------------
+  SPC l r         run current file
+<
+
+This layer also provides REPL support for python, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
 ==============================================================================
 LANG#RACKET                                       *SpaceVim-layer-lang-racket*
 
@@ -2998,6 +3378,16 @@ This layer also provides REPL support for red, the key bindings are:
 <
 
 
+==============================================================================
+LANG#REASON                                       *SpaceVim-layer-lang-reason*
+
+This layer is for reason development, disabled by default, to enable this
+layer, add following snippet to your |SpaceVim-options| file.
+>
+  [[layers]]
+    name = 'lang#reason'
+<
+
 ==============================================================================
 LANG#RING                                              *SpaceVim-layer-lang-r*
 
@@ -3341,6 +3731,23 @@ OPTIONS
 
   2. scheme_interpreter: Set the path or interpreter of scheme.
 
+MAPPINGS
+
+>
+  Key         Function
+  -----------------------------------------------
+  SPC l r     Run current file
+<
+This layer also provides REPL support for scheme, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
 
 ==============================================================================
 LANG#SH                                               *SpaceVim-layer-lang-sh*
@@ -3419,7 +3826,18 @@ MAPPINGS
   Key         Function
   -----------------------------------------------
   SPC l k     jumping to placeholders
+  SPC l r     Run current file
 <
+This layer also provides REPL support for swift, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
 
 ==============================================================================
 LANG#SWIG                                           *SpaceVim-layer-lang-swig*
@@ -3534,6 +3952,35 @@ KEY BINDINGS
 <
 
 
+==============================================================================
+LANG#WOLFRAM                                     *SpaceVim-layer-lang-wolfram*
+
+This layer is for wolfram development, disabled by default, to enable this
+layer, add following snippet to your SpaceVim configuration file.
+>
+  [[layers]]
+    name = 'lang#wolfram'
+<
+
+KEY BINDINGS
+
+>
+  Mode            Key             Function
+  ---------------------------------------------
+  normal          SPC l r         run current file
+<
+
+This layer also provides REPL support for wolfram, the key bindings are:
+>
+  Key             Function
+  ---------------------------------------------
+  SPC l s i       Start a inferior REPL process
+  SPC l s b       send whole buffer
+  SPC l s l       send current line
+  SPC l s s       send selection text
+<
+
+
 ==============================================================================
 LANG#XML                                             *SpaceVim-layer-lang-xml*
 
@@ -3640,6 +4087,24 @@ USAGE                                                         *SpaceVim-usage*
   General guide for using SpaceVim. Including layer configuration, bootstrap
 function.
 
+==============================================================================
+BUFFERS-AND-FILES                           *SpaceVim-usage-buffers-and-files*
+
+BUFFERS MANIPULATION KEY BINDINGS
+All buffers key bindings are start with `b` prefix:
+>
+  Key Bindings  Descriptions
+  SPC <Tab>         switch to alternate buffer in the current window (switch
+    back and forth)
+  SPC b .             buffer transient state
+  SPC b b             switch to a buffer (via denite/unite)
+  SPC b d             kill the current buffer (does not delete the visited
+    file)
+  SPC u SPC b d kill the current buffer and window (does not delete the
+    visited file) (TODO)
+  SPC b D             kill a visible buffer using vim-choosewin
+<
+
 ==============================================================================
 CUSTOM_PLUGINS                                 *SpaceVim-usage-custom_plugins*
 
diff --git a/docs/documentation.md b/docs/documentation.md
index 3fc2f0c14..66c7fd081 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -25,6 +25,7 @@ description: "General documentation about how to using SpaceVim, including the q
 - [Interface elements](#interface-elements)
   - [Colorschemes](#colorschemes)
   - [Font](#font)
+  - [Mouse](#mouse)
   - [UI Toggles](#ui-toggles)
   - [Statusline](#statusline)
   - [Tabline](#tabline)
@@ -136,7 +137,7 @@ packages tuned by power users and bugs are fixed quickly.
 - **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.
 - **Mnemonic key bindings:** commands have mnemonic prefixes like `[WIN]` for all the window and buffer commands or `[Unite]` for the unite work flow commands.
-- **Fast boot time:** Lazy-load 90% of plugins with [dein.vim]
+- **Fast boot time:** Lazy-load 90% of plugins with [dein.vim](https://github.com/Shougo/dein.vim)
 - **Lower the risk of RSI:** by heavily using the space bar instead of modifiers.
 - **Batteries included:** discover hundreds of ready-to-use packages nicely organised in configuration layers following a set of [conventions](http://spacevim.org/conventions/).
 - **Neovim centric:** Dark powered mode of SpaceVim
@@ -530,6 +531,21 @@ guifont = "SourceCodePro Nerd Font Mono:h11"
 If the specified font is not found, the fallback one will be used (depends on your system).
 Also note that changing this value has no effect if you are running Vim/Neovim in terminal.
 
+### Mouse
+
+Mouse support is enabled in Normal mode and Visual mode by default.
+To change the default value, you need to use the bootstrap function.
+
+For example, to disable mouse:
+
+```vim
+function! myspacevim#before() abort
+    set mouse=
+endfunction
+```
+
+Read `:h 'mouse'` for more info.
+
 ### UI Toggles
 
 Some UI indicators can be toggled on and off (toggles start with t and T):
@@ -609,7 +625,9 @@ When syntax checking minor mode is enabled, a new element appears showing the nu
 
 **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 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)
 
@@ -1369,9 +1387,9 @@ Buffer manipulation commands (start with `b`):
 
 #### Special Buffers
 
-In SpaceVim, there are many special buffers,
-these buffers are created by plugins or SpaceVim itself.
-And these buffers are not listed.
+Buffers created by plugins are not normal files, and they will not be listed
+on tabline. And also will not be listed by `SPC b b` key binding in fuzzy finder
+layer.
 
 #### Files manipulations key bindings
 
@@ -1439,8 +1457,13 @@ All plugins can be easily discovered via `<Leader> f p`.
 
 ### Fuzzy finder
 
+Fuzzy finder provides a variety of efficient content searching key bindings,
+including file searching, outline searching, vim messages searching and register
+content searching.
+
 SpaceVim provides five fuzzy find tools, each of them is configured in a layer
-(`unite`, `denite`, `leaderf`, `ctrlp` and `fzf` layer).
+([`unite`](../layers/unite/), `denite`, `leaderf`, `ctrlp` and `fzf` layer).
+
 These layers have the same key bindings and features. But they need different dependencies.
 
 Users only need to load one of these layers, they will be able to get these features.
diff --git a/docs/faq.md b/docs/faq.md
index 98e6a3a5e..f17727c78 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -19,6 +19,7 @@ and usage.
   - [E492: Not an editor command: ^M](#e492-not-an-editor-command-m)
   - [Why SpaceVim can not display default colorscheme?](#why-spacevim-can-not-display-default-colorscheme)
   - [Why can't I update plugins?](#why-cant-i-update-plugins)
+  - [How to reload `init.toml`?](#how-to-reload-inittoml)
   - [How to enable +py and +py3 in Neovim?](#how-to-enable-py-and-py3-in-neovim)
   - [Why does Vim freeze after pressing Ctrl-s?](#why-does-vim-freeze-after-pressing-ctrl-s)
 
@@ -91,6 +92,10 @@ directory is dirty (has changes that haven't been committed to git) you can not
 issue, just move your cursor to the error line, and press `gf`, then run `git reset --hard HEAD` or `git checkout .`. For
 more info please read git documentation.
 
+### How to reload `init.toml`?
+
+You can not reload `init.toml` after startup. After editing the `init.toml` file, you need to restart your vim or neovim.
+
 ### How to enable +py and +py3 in Neovim?
 
 In Neovim we can use `g:python_host_prog` and `g:python3_host_prog` to config python prog. In SpaceVim
diff --git a/docs/layers.md b/docs/layers.md
index 0605e8ee0..ed1cefecc 100644
--- a/docs/layers.md
+++ b/docs/layers.md
@@ -71,7 +71,7 @@ Some layers are enabled by default. The following example shows how to disable `
 | [checkers](checkers/)                                 | Syntax checking automatically within SpaceVim, display error on the sign column and statusline.                                                                     |
 | [chinese](chinese/)                                   | Layer for chinese users, include chinese docs and runtime messages                                                                                                  |
 | [colorscheme](colorscheme/)                           | colorscheme provides a list of colorscheme for SpaceVim, default colorscheme is gruvbox with dark theme.                                                            |
-| [core#banner](core/banner/)                           | This layer provides many default banners on welcome page.                                                                                                           |
+| [core#banner](core/banner/)                           | This layer provides many default banner on welcome page.                                                                                                            |
 | [core#statusline](core/statusline/)                   | This layer provides default statusline for SpaceVim                                                                                                                 |
 | [core#tabline](core/tabline/)                         | SpaceVim core#tabline layer provides a better tabline for SpaceVim                                                                                                  |
 | [core](core/)                                         | SpaceVim core layer provides many default key bindings and features.                                                                                                |
@@ -103,10 +103,11 @@ Some layers are enabled by default. The following example shows how to disable `
 | [lang#clojure](lang/clojure/)                         | This layer is for Clojure development, provide autocompletion, syntax checking, code format for Clojure file.                                                       |
 | [lang#coffeescript](lang/coffeescript/)               | This layer is for CoffeeScript development, provide autocompletion, syntax checking, code format for CoffeeScript file.                                             |
 | [lang#crystal](lang/crystal/)                         | This layer is for crystal development, provide syntax checking, code runner and repl support for crystal file.                                                      |
-| [lang#csharp](lang/csharp/)                           | This layer is for csharp development                                                                                                                                |
+| [lang#csharp](lang/csharp/)                           | csharp language layer, including syntax highlighting, asynchronously code runner.                                                                                   |
 | [lang#d](lang/d/)                                     | This layer is for d development, provide syntax checking, code runner support for d file.                                                                           |
 | [lang#dart](lang/dart/)                               | This layer is for Dart development, provide autocompletion, syntax checking, code format for Dart file.                                                             |
-| [lang#dockerfile](lang/dockerfile/)                   | This layer adds DockerFile to SpaceVim                                                                                                                              |
+| [lang#dockerfile](lang/dockerfile/)                   | DockerFile language support, includding syntax highlighting and code formatting.                                                                                    |
+| [lang#e](lang/e/)                                     | This layer is for e development, provide syntax checking, code runner and repl support for e file.                                                                  |
 | [lang#eiffel](lang/eiffel/)                           | This layer is for eiffel development, provides syntax highlighting, indent for eiffel file.                                                                         |
 | [lang#elixir](lang/elixir/)                           | This layer is for Elixir development, provide autocompletion, syntax checking, code format for Elixir file.                                                         |
 | [lang#elm](lang/elm/)                                 | This layer is for Elm development, provide autocompletion, syntax checking, code format for Elm file.                                                               |
diff --git a/docs/layers/lang/clojure.md b/docs/layers/lang/clojure.md
index a6f00c2ff..0bd5a808e 100644
--- a/docs/layers/lang/clojure.md
+++ b/docs/layers/lang/clojure.md
@@ -10,7 +10,7 @@ description: "This layer is for Clojure development, provide autocompletion, syn
 - [Description](#description)
 - [Features](#features)
 - [Install](#install)
-  - [Layer](#layer)
+- [Layer options](#layer-options)
 - [Key bindings](#key-bindings)
   - [Running current script](#running-current-script)
   - [Inferior REPL process](#inferior-repl-process)
@@ -31,8 +31,6 @@ This layer is for Clojure development, and it includes vim-clojure-static and vi
 
 ## Install
 
-### Layer
-
 To use this configuration layer, update custom configuration file with:
 
 ```toml
@@ -40,6 +38,17 @@ To use this configuration layer, update custom configuration file with:
   name = "lang#clojure"
 ```
 
+## Layer options
+
+- `clojure_interpreter`: Set the clojure interpreter, by default, it is
+  `clojure`
+  ```toml
+  [[layers]]
+    name = 'lang#clojure'
+    clojure_interpreter = 'path/to/clojure'
+  ```
+
+
 ## Key bindings
 
 ### Running current script
diff --git a/docs/layers/lang/csharp.md b/docs/layers/lang/csharp.md
index b9abcc74f..0a9b2f986 100644
--- a/docs/layers/lang/csharp.md
+++ b/docs/layers/lang/csharp.md
@@ -1,6 +1,6 @@
 ---
 title: "SpaceVim lang#csharp layer"
-description: "This layer is for csharp development"
+description: "csharp language layer, including syntax highlighting, asynchronously code runner."
 ---
 
 # [Available Layers](../../) >> lang#csharp
@@ -9,8 +9,6 @@ description: "This layer is for csharp development"
 
 - [Description](#description)
 - [Install](#install)
-  - [Layer](#layer)
-  - [OmniSharp Server](#omnisharp-server)
 - [Key bindings](#key-bindings)
 
 <!-- vim-markdown-toc -->
diff --git a/docs/layers/lang/dockerfile.md b/docs/layers/lang/dockerfile.md
index 71f2f71cf..af990802c 100644
--- a/docs/layers/lang/dockerfile.md
+++ b/docs/layers/lang/dockerfile.md
@@ -1,6 +1,6 @@
 ---
 title: "SpaceVim lang#dockerfile layer"
-description: "This layer adds DockerFile to SpaceVim"
+description: "DockerFile language support, includding syntax highlighting and code formatting."
 ---
 
 # [Available Layers](../../) >> lang#dockerfile
diff --git a/wiki/cn/Following-HEAD.md b/wiki/cn/Following-HEAD.md
index 987cb874e..7d022aa3f 100644
--- a/wiki/cn/Following-HEAD.md
+++ b/wiki/cn/Following-HEAD.md
@@ -9,15 +9,16 @@
 
 #### 新特性
 
-- Add multiple tasks support [#4150](https://github.com/SpaceVim/SpaceVim/pull/4150)
-- add more language support key for typescript [#4141](https://github.com/SpaceVim/SpaceVim/pull/4141)
-- Add .SpaceVim.d/after to the end of rtp [#4136](https://github.com/SpaceVim/SpaceVim/pull/4136)
-- Add task problem matcher [#4127](https://github.com/SpaceVim/SpaceVim/pull/4127)
-- Add build action [#4096](https://github.com/SpaceVim/SpaceVim/pull/4096)
-- Add github_action_check [#4095](https://github.com/SpaceVim/SpaceVim/pull/4095)
-- Add vint github action [#4094](https://github.com/SpaceVim/SpaceVim/pull/4094)
-- Add lang#reason & lang#rescript layer [#4089](https://github.com/SpaceVim/SpaceVim/pull/4089)
-- Add Git cherry-pick support [#4088](https://github.com/SpaceVim/SpaceVim/pull/4088)
+- Add file search option [#4245](https://github.com/SpaceVim/SpaceVim/pull/4245)
+- Add relevant repo links to the fuzzy finders [#4239](https://github.com/SpaceVim/SpaceVim/pull/4239)
+- Add github repository links to the available git_plugins [#4238](https://github.com/SpaceVim/SpaceVim/pull/4238)
+- Add bootstrap function link to quick guide [#4213](https://github.com/SpaceVim/SpaceVim/pull/4213)
+- Add lang#e layer [#4210](https://github.com/SpaceVim/SpaceVim/pull/4210)
+- Add SPC w f for toggle follow mode [#4201](https://github.com/SpaceVim/SpaceVim/pull/4201)
+- Add m c key binding [#4199](https://github.com/SpaceVim/SpaceVim/pull/4199)
+- Add format_on_save toggle for javascript [#4183](https://github.com/SpaceVim/SpaceVim/pull/4183)
+- Add SPC x l key binding group [#4182](https://github.com/SpaceVim/SpaceVim/pull/4182)
+- Add SPC l c and SPC l u for lang#markdown layer [#4163](https://github.com/SpaceVim/SpaceVim/pull/4163)
 - Add: new configuration options for go layer to take advantage of gopls features [#3837](https://github.com/SpaceVim/SpaceVim/pull/3837)
 
 #### 改变
@@ -27,35 +28,47 @@
 
 #### 问题修复
 
+- Fixed typo in docs [#4235](https://github.com/SpaceVim/SpaceVim/pull/4235)
+- Fix directory [#4227](https://github.com/SpaceVim/SpaceVim/pull/4227)
+- Fix SPC t s/S key binding [#4225](https://github.com/SpaceVim/SpaceVim/pull/4225)
+- Fix Objective C language support [#4215](https://github.com/SpaceVim/SpaceVim/pull/4215)
+- Fix a typo [#4214](https://github.com/SpaceVim/SpaceVim/pull/4214)
+- fix gtags completion and list project files [#4209](https://github.com/SpaceVim/SpaceVim/pull/4209)
+- Fix random theme functionality of the [colorscheme] layer [#4204](https://github.com/SpaceVim/SpaceVim/pull/4204)
+- Fix lang#html layer [#4202](https://github.com/SpaceVim/SpaceVim/pull/4202)
+- Fix SPC T F key binding [#4198](https://github.com/SpaceVim/SpaceVim/pull/4198)
+- Fix SPC b d key binding [#4197](https://github.com/SpaceVim/SpaceVim/pull/4197)
+- Fix and add the key bindings toggle case [#4190](https://github.com/SpaceVim/SpaceVim/pull/4190)
+- Fix uniquify lines in normal mode when ignorecase. [#4189](https://github.com/SpaceVim/SpaceVim/pull/4189)
+- Fix SPC x l d in first line [#4185](https://github.com/SpaceVim/SpaceVim/pull/4185)
+- Fix choosewin [#4174](https://github.com/SpaceVim/SpaceVim/pull/4174)
 - Fix cursor shape option [#4168](https://github.com/SpaceVim/SpaceVim/pull/4168)
-- Fix autocomplete_method logic [#4159](https://github.com/SpaceVim/SpaceVim/pull/4159)
-- fix language leader key not work when open tsx file [#4140](https://github.com/SpaceVim/SpaceVim/pull/4140)
-- Fix flygrep open_item function [#4115](https://github.com/SpaceVim/SpaceVim/pull/4115)
-- Fix smart close issue for Vim [#4110](https://github.com/SpaceVim/SpaceVim/pull/4110)
-- Fix github action build status [#4105](https://github.com/SpaceVim/SpaceVim/pull/4105)
-- Fix configuration path [#4097](https://github.com/SpaceVim/SpaceVim/pull/4097)
 
 #### 未知
 
+- Reword '.' key-binding description to make it clearer [#4240](https://github.com/SpaceVim/SpaceVim/pull/4240)
+- Remove files [#4233](https://github.com/SpaceVim/SpaceVim/pull/4233)
+- Update lang#hy layer [#4232](https://github.com/SpaceVim/SpaceVim/pull/4232)
+- Develop [#4230](https://github.com/SpaceVim/SpaceVim/pull/4230)
+- Update lang#coffeescript layer [#4229](https://github.com/SpaceVim/SpaceVim/pull/4229)
+- Update lang#dart layer [#4228](https://github.com/SpaceVim/SpaceVim/pull/4228)
+- Update lang#php layer [#4226](https://github.com/SpaceVim/SpaceVim/pull/4226)
+- Update doc [#4223](https://github.com/SpaceVim/SpaceVim/pull/4223)
+- Bump py from 1.4.32 to 1.10.0 in /bundle/neoformat/test [#4220](https://github.com/SpaceVim/SpaceVim/pull/4220)
+- Update doc for SPReinstall [#4212](https://github.com/SpaceVim/SpaceVim/pull/4212)
+- Check python3 first [#4208](https://github.com/SpaceVim/SpaceVim/pull/4208)
+- Format on save with clang-format [#4195](https://github.com/SpaceVim/SpaceVim/pull/4195)
+- Update doc of git layer [#4192](https://github.com/SpaceVim/SpaceVim/pull/4192)
+- Update doc for SPC t h i [#4184](https://github.com/SpaceVim/SpaceVim/pull/4184)
+- Replace the invalid URL of smart questions with a new one. [#4179](https://github.com/SpaceVim/SpaceVim/pull/4179)
+- Doc: add description for the key bindings m c. [#4178](https://github.com/SpaceVim/SpaceVim/pull/4178)
+- yabuki/added python3 and ipython3 [#4173](https://github.com/SpaceVim/SpaceVim/pull/4173)
+- Improve cscope layer [#4171](https://github.com/SpaceVim/SpaceVim/pull/4171)
+- Update Following head page [#4170](https://github.com/SpaceVim/SpaceVim/pull/4170)
 - Improve tabline and statusline [#4169](https://github.com/SpaceVim/SpaceVim/pull/4169)
 - docs: fix typos in edit layer [#4166](https://github.com/SpaceVim/SpaceVim/pull/4166)
-- Secret.allah [#4165](https://github.com/SpaceVim/SpaceVim/pull/4165)
 - Update `lang#ruby` layer [#4164](https://github.com/SpaceVim/SpaceVim/pull/4164)
 - Doc: update markdown documents. [#4162](https://github.com/SpaceVim/SpaceVim/pull/4162)
-- Update python doc [#4154](https://github.com/SpaceVim/SpaceVim/pull/4154)
-- Ignore E790 on formating [#4148](https://github.com/SpaceVim/SpaceVim/pull/4148)
-- Define dir to save edits [#4143](https://github.com/SpaceVim/SpaceVim/pull/4143)
-- Lazy-load vimtex [#4139](https://github.com/SpaceVim/SpaceVim/pull/4139)
-- Doc: Fix typos [#4137](https://github.com/SpaceVim/SpaceVim/pull/4137)
-- disable colors for ipython repl [#4134](https://github.com/SpaceVim/SpaceVim/pull/4134)
-- doc: project_rooter_automatically [#4129](https://github.com/SpaceVim/SpaceVim/pull/4129)
-- feat: add autocomplete toggle for deoplete [#4125](https://github.com/SpaceVim/SpaceVim/pull/4125)
-- Iedit read from vim register [#4124](https://github.com/SpaceVim/SpaceVim/pull/4124)
-- readme.md [#4123](https://github.com/SpaceVim/SpaceVim/pull/4123)
-- Update gtags install guide [#4119](https://github.com/SpaceVim/SpaceVim/pull/4119)
-- Set `tabstop`, `softtabstop` and `shiftwidth` to the same value only if default_indent is positive [#4116](https://github.com/SpaceVim/SpaceVim/pull/4116)
-- Update codecov [#4107](https://github.com/SpaceVim/SpaceVim/pull/4107)
-- Print error if user's bootstrap was unsuccessful [#4093](https://github.com/SpaceVim/SpaceVim/pull/4093)
 
 <!-- SpaceVim follow HEAD en end -->
 
diff --git a/wiki/en/Following-HEAD.md b/wiki/en/Following-HEAD.md
index 63be5e296..eb6e40f1b 100644
--- a/wiki/en/Following-HEAD.md
+++ b/wiki/en/Following-HEAD.md
@@ -11,15 +11,16 @@ The next release is v1.7.0:
 
 #### New Features
 
-- Add multiple tasks support [#4150](https://github.com/SpaceVim/SpaceVim/pull/4150)
-- add more language support key for typescript [#4141](https://github.com/SpaceVim/SpaceVim/pull/4141)
-- Add .SpaceVim.d/after to the end of rtp [#4136](https://github.com/SpaceVim/SpaceVim/pull/4136)
-- Add task problem matcher [#4127](https://github.com/SpaceVim/SpaceVim/pull/4127)
-- Add build action [#4096](https://github.com/SpaceVim/SpaceVim/pull/4096)
-- Add github_action_check [#4095](https://github.com/SpaceVim/SpaceVim/pull/4095)
-- Add vint github action [#4094](https://github.com/SpaceVim/SpaceVim/pull/4094)
-- Add lang#reason & lang#rescript layer [#4089](https://github.com/SpaceVim/SpaceVim/pull/4089)
-- Add Git cherry-pick support [#4088](https://github.com/SpaceVim/SpaceVim/pull/4088)
+- Add file search option [#4245](https://github.com/SpaceVim/SpaceVim/pull/4245)
+- Add relevant repo links to the fuzzy finders [#4239](https://github.com/SpaceVim/SpaceVim/pull/4239)
+- Add github repository links to the available git_plugins [#4238](https://github.com/SpaceVim/SpaceVim/pull/4238)
+- Add bootstrap function link to quick guide [#4213](https://github.com/SpaceVim/SpaceVim/pull/4213)
+- Add lang#e layer [#4210](https://github.com/SpaceVim/SpaceVim/pull/4210)
+- Add SPC w f for toggle follow mode [#4201](https://github.com/SpaceVim/SpaceVim/pull/4201)
+- Add m c key binding [#4199](https://github.com/SpaceVim/SpaceVim/pull/4199)
+- Add format_on_save toggle for javascript [#4183](https://github.com/SpaceVim/SpaceVim/pull/4183)
+- Add SPC x l key binding group [#4182](https://github.com/SpaceVim/SpaceVim/pull/4182)
+- Add SPC l c and SPC l u for lang#markdown layer [#4163](https://github.com/SpaceVim/SpaceVim/pull/4163)
 - Add: new configuration options for go layer to take advantage of gopls features [#3837](https://github.com/SpaceVim/SpaceVim/pull/3837)
 
 #### Feature Changes
@@ -29,35 +30,47 @@ The next release is v1.7.0:
 
 #### Bug Fixs
 
+- Fixed typo in docs [#4235](https://github.com/SpaceVim/SpaceVim/pull/4235)
+- Fix directory [#4227](https://github.com/SpaceVim/SpaceVim/pull/4227)
+- Fix SPC t s/S key binding [#4225](https://github.com/SpaceVim/SpaceVim/pull/4225)
+- Fix Objective C language support [#4215](https://github.com/SpaceVim/SpaceVim/pull/4215)
+- Fix a typo [#4214](https://github.com/SpaceVim/SpaceVim/pull/4214)
+- fix gtags completion and list project files [#4209](https://github.com/SpaceVim/SpaceVim/pull/4209)
+- Fix random theme functionality of the [colorscheme] layer [#4204](https://github.com/SpaceVim/SpaceVim/pull/4204)
+- Fix lang#html layer [#4202](https://github.com/SpaceVim/SpaceVim/pull/4202)
+- Fix SPC T F key binding [#4198](https://github.com/SpaceVim/SpaceVim/pull/4198)
+- Fix SPC b d key binding [#4197](https://github.com/SpaceVim/SpaceVim/pull/4197)
+- Fix and add the key bindings toggle case [#4190](https://github.com/SpaceVim/SpaceVim/pull/4190)
+- Fix uniquify lines in normal mode when ignorecase. [#4189](https://github.com/SpaceVim/SpaceVim/pull/4189)
+- Fix SPC x l d in first line [#4185](https://github.com/SpaceVim/SpaceVim/pull/4185)
+- Fix choosewin [#4174](https://github.com/SpaceVim/SpaceVim/pull/4174)
 - Fix cursor shape option [#4168](https://github.com/SpaceVim/SpaceVim/pull/4168)
-- Fix autocomplete_method logic [#4159](https://github.com/SpaceVim/SpaceVim/pull/4159)
-- fix language leader key not work when open tsx file [#4140](https://github.com/SpaceVim/SpaceVim/pull/4140)
-- Fix flygrep open_item function [#4115](https://github.com/SpaceVim/SpaceVim/pull/4115)
-- Fix smart close issue for Vim [#4110](https://github.com/SpaceVim/SpaceVim/pull/4110)
-- Fix github action build status [#4105](https://github.com/SpaceVim/SpaceVim/pull/4105)
-- Fix configuration path [#4097](https://github.com/SpaceVim/SpaceVim/pull/4097)
 
 #### Unmarked PRs
 
+- Reword '.' key-binding description to make it clearer [#4240](https://github.com/SpaceVim/SpaceVim/pull/4240)
+- Remove files [#4233](https://github.com/SpaceVim/SpaceVim/pull/4233)
+- Update lang#hy layer [#4232](https://github.com/SpaceVim/SpaceVim/pull/4232)
+- Develop [#4230](https://github.com/SpaceVim/SpaceVim/pull/4230)
+- Update lang#coffeescript layer [#4229](https://github.com/SpaceVim/SpaceVim/pull/4229)
+- Update lang#dart layer [#4228](https://github.com/SpaceVim/SpaceVim/pull/4228)
+- Update lang#php layer [#4226](https://github.com/SpaceVim/SpaceVim/pull/4226)
+- Update doc [#4223](https://github.com/SpaceVim/SpaceVim/pull/4223)
+- Bump py from 1.4.32 to 1.10.0 in /bundle/neoformat/test [#4220](https://github.com/SpaceVim/SpaceVim/pull/4220)
+- Update doc for SPReinstall [#4212](https://github.com/SpaceVim/SpaceVim/pull/4212)
+- Check python3 first [#4208](https://github.com/SpaceVim/SpaceVim/pull/4208)
+- Format on save with clang-format [#4195](https://github.com/SpaceVim/SpaceVim/pull/4195)
+- Update doc of git layer [#4192](https://github.com/SpaceVim/SpaceVim/pull/4192)
+- Update doc for SPC t h i [#4184](https://github.com/SpaceVim/SpaceVim/pull/4184)
+- Replace the invalid URL of smart questions with a new one. [#4179](https://github.com/SpaceVim/SpaceVim/pull/4179)
+- Doc: add description for the key bindings m c. [#4178](https://github.com/SpaceVim/SpaceVim/pull/4178)
+- yabuki/added python3 and ipython3 [#4173](https://github.com/SpaceVim/SpaceVim/pull/4173)
+- Improve cscope layer [#4171](https://github.com/SpaceVim/SpaceVim/pull/4171)
+- Update Following head page [#4170](https://github.com/SpaceVim/SpaceVim/pull/4170)
 - Improve tabline and statusline [#4169](https://github.com/SpaceVim/SpaceVim/pull/4169)
 - docs: fix typos in edit layer [#4166](https://github.com/SpaceVim/SpaceVim/pull/4166)
-- Secret.allah [#4165](https://github.com/SpaceVim/SpaceVim/pull/4165)
 - Update `lang#ruby` layer [#4164](https://github.com/SpaceVim/SpaceVim/pull/4164)
 - Doc: update markdown documents. [#4162](https://github.com/SpaceVim/SpaceVim/pull/4162)
-- Update python doc [#4154](https://github.com/SpaceVim/SpaceVim/pull/4154)
-- Ignore E790 on formating [#4148](https://github.com/SpaceVim/SpaceVim/pull/4148)
-- Define dir to save edits [#4143](https://github.com/SpaceVim/SpaceVim/pull/4143)
-- Lazy-load vimtex [#4139](https://github.com/SpaceVim/SpaceVim/pull/4139)
-- Doc: Fix typos [#4137](https://github.com/SpaceVim/SpaceVim/pull/4137)
-- disable colors for ipython repl [#4134](https://github.com/SpaceVim/SpaceVim/pull/4134)
-- doc: project_rooter_automatically [#4129](https://github.com/SpaceVim/SpaceVim/pull/4129)
-- feat: add autocomplete toggle for deoplete [#4125](https://github.com/SpaceVim/SpaceVim/pull/4125)
-- Iedit read from vim register [#4124](https://github.com/SpaceVim/SpaceVim/pull/4124)
-- readme.md [#4123](https://github.com/SpaceVim/SpaceVim/pull/4123)
-- Update gtags install guide [#4119](https://github.com/SpaceVim/SpaceVim/pull/4119)
-- Set `tabstop`, `softtabstop` and `shiftwidth` to the same value only if default_indent is positive [#4116](https://github.com/SpaceVim/SpaceVim/pull/4116)
-- Update codecov [#4107](https://github.com/SpaceVim/SpaceVim/pull/4107)
-- Print error if user's bootstrap was unsuccessful [#4093](https://github.com/SpaceVim/SpaceVim/pull/4093)
 
 <!-- SpaceVim follow HEAD en end -->
 
diff --git a/wiki/en/Getting-help.md b/wiki/en/Getting-help.md
index 240594848..96c921be1 100644
--- a/wiki/en/Getting-help.md
+++ b/wiki/en/Getting-help.md
@@ -1,4 +1,4 @@
-If you need help, ask your question in the [Gitter Chat](https://gitter.im/SpaceVim/SpaceVim),
+If you need help, ask your question in the [Gitter room](https://gitter.im/SpaceVim/SpaceVim),
 a member of the community will help you out.
 
 Here is a simple guide for how to get help with SpaceVim. Before asking