1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 05:40:05 +08:00
SpaceVim/doc/SpaceVim.txt

604 lines
20 KiB
Plaintext
Raw Normal View History

2016-12-31 19:07:05 +08:00
*SpaceVim.txt* Like spacemacs, but for vim
2017-01-11 01:03:52 +08:00
wsdjeg *Maktaba* *SpaceVim*
2016-12-31 19:07:05 +08:00
==============================================================================
CONTENTS *SpaceVim-contents*
2017-01-02 10:38:23 +08:00
1. Introduction.............................................|SpaceVim-intro|
2017-01-27 21:49:05 +08:00
2. CONFIGURATION...........................................|SpaceVim-config|
2017-01-02 10:38:23 +08:00
3. Functions............................................|SpaceVim-functions|
2017-01-11 01:03:52 +08:00
4. Layers..................................................|SpaceVim-layers|
2017-01-31 20:09:13 +08:00
1. autocomplete..................................|SpaceVim-autocomplete|
2017-02-03 19:49:18 +08:00
2. checkers....................................|SpaceVim-layer-checkers|
3. colorscheme....................................|SpaceVim-colorscheme|
4. lang#c........................................|SpaceVim-layer-lang-c|
5. lang#elixir..............................|SpaceVim-layer-lang-elixir|
6. lang#go......................................|SpaceVim-layer-lang-go|
7. lang#java..................................|SpaceVim-layer-lang-java|
8. lang#php....................................|SpaceVim-layer-lang-php|
9. lang#python..............................|SpaceVim-layer-lang-python|
10. lang#rust.................................|SpaceVim-layer-lang-rust|
11. lang#xml...................................|SpaceVim-layer-lang-xml|
12. shell.........................................|SpaceVim-layer-shell|
2017-01-29 22:55:09 +08:00
5. FAQ........................................................|SpaceVim-faq|
2017-01-02 10:38:23 +08:00
==============================================================================
INTRODUCTION *SpaceVim-intro*
2017-01-11 15:40:19 +08:00
SpaceVim is a Modular configuration, a bundle of custom settings and
plugins, for Vim. It got inspired by spacemacs.
2017-01-27 21:49:05 +08:00
2016-12-31 19:07:05 +08:00
==============================================================================
CONFIGURATION *SpaceVim-config*
2017-01-27 21:49:05 +08:00
SpaceVim use `~/.SpaceVim.d/init.vim` as it's 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 script in it. SpaceVim also
support local config of each project. It should be `.SpaceVim.d/init.vim` in
the root directory of your project. and `.SpaceVim.d/` will also be added to
runtimepath.
*g:spacevim_default_indent*
2017-01-03 00:27:11 +08:00
Change the default indent of SpaceVim. default is 2.
>
let g:spacevim_default_indent = 2
<
2016-12-31 19:07:05 +08:00
2016-12-31 19:40:08 +08:00
*g:spacevim_max_column*
2017-01-03 00:27:11 +08:00
Change the max column of SpaceVim, default is 120.
>
let g:spacevim_max_column = 120
<
*g:spacevim_enable_guicolors*
Enable true color support in terminal.
>
let g:spacevim_enable_guicolors = 1
<
2017-01-03 00:27:11 +08:00
*g:spacevim_enable_googlesuggest*
Enable/Disable google suggestion for neocomplete. by default it is Disabled.
you can enable it by:
>
let g:spacevim_enable_googlesuggest = 1
<
2016-12-31 19:40:08 +08:00
2017-01-11 23:00:28 +08:00
*g:spacevim_windows_leader*
Windows function leader of SpaceVim, default is `s`, set to empty to disable
this feature, or you can set to other char.
>
let g:spacevim_windows_leader = ''
<
*g:spacevim_unite_leader*
Unite work flow leader of SpaceVim, default is `f`, set to empty to disable
this feature, or you can set to other char.
*g:spacevim_plugin_bundle_dir*
Set the cache dir of plugins, by default, it is `~/.cache/vimfiles`. you can
set it by:
>
let g:spacevim_plugin_bundle_dir = '~/.cache/vimplugs'
<
2017-01-18 19:42:54 +08:00
*g:spacevim_realtime_leader_guide*
Disable/Enable realtime leader guide, by default it is 0. to enable this
feature:
>
let g:spacevim_realtime_leader_guide = 1
<
2016-12-31 23:09:52 +08:00
*g:spacevim_guifont*
set the guifont of Spacevim, default is empty.
2017-01-11 01:03:52 +08:00
>
let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
<
2016-12-31 23:09:52 +08:00
2016-12-31 19:40:08 +08:00
*g:spacevim_enable_ycm*
2017-01-25 20:04:17 +08:00
Disable/Enable YouCompleteMe, by default it is disabled. To enable it:
2017-01-11 01:03:52 +08:00
>
let g:spacevim_enable_ycm = 1
<
*g:spacevim_enable_cursorline*
Enable cursorline
>
let g:spacevim_enable_cursorline = 1
<
2016-12-31 19:40:08 +08:00
*g:spacevim_error_symbol*
2017-01-19 20:41:06 +08:00
Set the error symbol of SpaceVim's syntax maker. example:
>
let g:spacevim_error_symbol = '+'
<
*g:spacevim_warning_symbol*
Set the warning symbol of SpaceVim's syntax maker. example:
>
let g:spacevim_warning_symbol = '!'
<
*g:spacevim_vim_help_language*
Set the help language of vim. By default it is `en`, you can change it to
chinese.
>
let g:spacevim_vim_help_language = 'chinese'
<
2016-12-31 19:40:08 +08:00
2017-01-30 20:36:03 +08:00
*g:spacevim_language*
Set the message language of vim. By default it is empty, and the language is
en_US.UTF-8. example:
>
let g:spacevim_language = 'en_CA.utf8'
<
2016-12-31 20:05:52 +08:00
*g:spacevim_colorscheme*
The colorscheme of SpaceVim, if colorscheme groups are installed.
*g:spacevim_colorscheme_default*
2017-01-11 15:40:19 +08:00
The default colorscheme of SpaceVim. By default SpaceVim use desert, if
colorscheme which name is the value of g:spacevim_colorscheme has not been
installed.you can change it in custom config file.
>
let g:spacevim_colorscheme_default = 'other_color'
<
*g:spacevim_simple_mode*
Disable/Enable simple mode of SpaceVim, in this mode, only few plugins will be
installed.
2017-01-11 20:47:23 +08:00
>
let g:spacevim_simple_mode = 1
<
2016-12-31 20:05:52 +08:00
*g:spacevim_filemanager*
The default file manager of SpaceVim.
*g:spacevim_plugin_manager*
The default plugin manager of SpaceVim, dein, neobundle or vim-plug. by
default it is dein.
2017-01-06 21:42:33 +08:00
*g:spacevim_checkinstall*
Enable/Disable checkinstall on SpaceVim startup. by default is 1.
2017-01-06 21:42:33 +08:00
To disable it:
2017-01-06 21:42:33 +08:00
>
let g:spacevim_checkinstall = 0
2017-01-06 21:42:33 +08:00
<
2017-01-08 16:27:18 +08:00
*g:spacevim_enable_debug*
Enable/Disable debug mode for SpaceVim, by default it is disabled.
to enable it:
>
let g:spacevim_enable_debug = 1
<
2017-01-08 23:02:49 +08:00
*g:spacevim_debug_level*
Set the debug level of SpaceVim, by default it is 1.
2017-01-01 21:31:57 +08:00
*g:spacevim_plugin_groups*
groups of plugins should be loaded.
example:
>
let g:spacevim_plugin_groups = ['core', 'lang']
<
now Space Vim support these groups:
2017-01-05 21:16:45 +08:00
*g:spacevim_disabled_plugins*
Disable plugins by names. example:
>
let g:spacevim_disabled_plugins = ['vim-foo', 'vim-bar']
<
2017-01-09 22:50:06 +08:00
*g:spacevim_custom_plugins*
Add custom plugins
>
let g:spacevim_custom_plugins = [
\ ['plasticboy/vim-markdown', 'on_ft' : 'markdown'],
\ ['wsdjeg/GitHub.vim'],
\ ]
<
2017-01-10 00:27:52 +08:00
*g:spacevim_force_global_config*
SpaceVim will load global config after local config if set to 1. by default it
is 0, if you has local config, the global config will not be loaded.
>
let g:spacevim_force_global_config = 1
<
2017-01-02 10:38:23 +08:00
*g:spacevim_enable_powerline_fonts*
enable/disable SpaceVim with powerline symbols.
2017-01-07 23:01:13 +08:00
*g:spacevim_lint_on_save*
Enable/Disable lint on save feature of SpaceVim's maker.
To disable lint on save:
>
let g:spacevim_lint_on_save = 0
<
*g:spacevim_enable_vimfiler_welcome*
Enable/Disable Vimfiler in the welcome windows, this will cause vim slow on
startup if there are too many files in current directory. you can disable it
by:
>
let g:spacevim_enable_vimfiler_welcome = 0
<
2016-12-31 20:05:52 +08:00
*g:spacevim_hosts_url*
The host file url. this option is for chinese users who can not use google and
twitter.
2016-12-31 19:07:05 +08:00
==============================================================================
FUNCTIONS *SpaceVim-functions*
2017-01-18 20:52:19 +08:00
SpaceVim#layers#load({layer}) *SpaceVim#layers#load()*
2017-01-18 20:25:25 +08:00
Load the {layer} you want, for all the layers SpaceVim supported, see
|SpaceVim-layers|.
2016-12-31 19:07:05 +08:00
2017-01-08 16:27:18 +08:00
SpaceVim#logger#setLevel({level}) *SpaceVim#logger#setLevel()*
2017-01-08 18:38:45 +08:00
Set debug level of SpaceVim, by default it is 1. all message will be logged.
2017-01-08 16:27:18 +08:00
2017-01-08 18:38:45 +08:00
1 : log all the message.
2017-01-08 16:27:18 +08:00
2017-01-08 18:38:45 +08:00
2 : log warning and error message
2017-01-08 16:27:18 +08:00
2017-01-08 18:38:45 +08:00
3 : log error message only
2017-01-08 16:27:18 +08:00
SpaceVim#logger#setOutput({file}) *SpaceVim#logger#setOutput()*
Set log output file of SpaceVim. by default it is
`~/.SpaceVim/.SpaceVim.log`
2017-01-11 01:03:52 +08:00
==============================================================================
LAYERS *SpaceVim-layers*
2017-01-11 15:40:19 +08:00
SpaceVim support such layers:
2017-01-25 20:04:17 +08:00
==============================================================================
AUTOCOMPLETE *SpaceVim-autocomplete*
2017-01-31 20:09:13 +08:00
CODE COMPLETION
2017-01-25 20:04:17 +08:00
SpaceVim use neocomplete as default completion engine for vim with lua
support, if has no lua support neocomplcache will be the completion engine.
SpaceVim use deoplete as default completion engine for nevoim. to make neovim
support python, please read neovim's |provider-python|.
SpaceVim include YouCompleteMe, but it is disabled by default, to enable ycm,
see |g:spacevim_enable_ycm|.
2017-01-31 20:09:13 +08:00
SNIPPET
SpaceVim use neosnippet as default snippet engine, and the default snippets is
`Shougo/neosnippet-snippets`. for more information, please read |neosnippet|.
2017-02-02 23:46:14 +08:00
neosnippet support custtom snippets, and the default snippets directory is
`~/.SpaceVim.d/snippets/` and if g:spacevim_force_global_config = 1, SpaceVim
will not append `./.SpaceVim.d/snippets` as default snippets directory.
2017-01-31 20:09:13 +08:00
2017-02-03 19:49:18 +08:00
==============================================================================
CHECKERS *SpaceVim-layer-checkers*
SpaceVim use neomake as default syntax checker.
2017-01-22 23:20:41 +08:00
==============================================================================
COLORSCHEME *SpaceVim-colorscheme*
2017-01-23 21:59:35 +08:00
SpaceVim default colorscheme is gruvbox, you can change it by set spacevim
option. add this to your `~/.SpaceVim.d/init.vim`
>
let g:spacevim_colorscheme = 'solarized'
<
2017-01-23 22:13:02 +08:00
colorschemes: if the colorscheme you want do not list below, PR welcome.
2017-01-22 23:20:41 +08:00
>
2017-01-23 21:59:35 +08:00
gruvbox
2017-01-22 23:20:41 +08:00
hybrid-material
solarized
2017-01-23 22:13:02 +08:00
zellner
yowish
wombat256mod
twilight256
torte
solarized
slate
shine
seoul256-light
seoul256
scheakur
ron
rdark-terminal2
pyte
peachpuff
parsec
pablo
onedark
murphy
morning
molokayo
molokai
lucius
lightning
koehler
jellybeans
janah
industry
hybrid_reverse
hybrid_material
hybrid
gruvbox
focuspoint
flattened_light
flattened_dark
flatcolor
evening
elflord
desert
delek
default
darkblue
blue
base16-woodland
base16-unikitty-light
base16-unikitty-dark
base16-twilight
base16-tomorrow-night
base16-tomorrow
base16-summerfruit-light
base16-summerfruit-dark
base16-spacemacs
base16-solarized-light
base16-solarized-dark
base16-solar-flare
base16-shapeshifter
base16-seti-ui
base16-railscasts
base16-pop
base16-pico
base16-phd
base16-paraiso
base16-onedark
base16-oceanicnext
base16-ocean
base16-monokai
base16-mocha
base16-mexico-light
base16-materia
base16-marrakesh
base16-macintosh
base16-london-tube
base16-isotope
base16-ir-black
base16-hopscotch
base16-harmonic16-light
base16-harmonic16-dark
base16-green-screen
base16-grayscale-light
base16-grayscale-dark
base16-google-light
base16-google-dark
base16-github
base16-flat
base16-embers
base16-eighties
base16-dracula
base16-default-light
base16-default-dark
base16-darktooth
base16-cupcake
base16-codeschool
base16-chalk
base16-bright
base16-brewer
base16-bespin
base16-atelier-sulphurpool
base16-atelier-seaside
base16-atelier-savanna
base16-atelier-plateau
base16-atelier-lakeside
base16-atelier-heath
base16-atelier-forest
base16-atelier-estuary
base16-atelier-dune
base16-atelier-cave
base16-ashes
base16-apathy
base16-3024
atom
apprentice
anderson
PaperColor
OceanicNextLight
OceanicNext
2017-01-22 23:20:41 +08:00
<
2017-01-29 22:55:09 +08:00
==============================================================================
2017-01-31 19:05:59 +08:00
LANG#C *SpaceVim-layer-lang-c*
2017-01-29 22:55:09 +08:00
this layer provide c family language code completion and syntax chaeck.you
need install clang.
configuration:
1.setting compile flag:
>
let g:deoplete#sources#clang#flags = ['-Iwhatever', ...]
<
2.`g:deoplete#sources#clang#executable` sets the path to the clang
executable.
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.`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 a #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.
2017-02-03 19:49:18 +08:00
==============================================================================
LANG#ELIXIR *SpaceVim-layer-lang-elixir*
INTRO
lang#elixir layer provide code completion,documentation lookup, jump to
definition, mix integration and iex integration for elixir project. SpaceVim
use neomake as default syntax checker which is loaded in
|SpaceVim-layer-checkers|
2017-01-31 22:15:06 +08:00
==============================================================================
LANG#GO *SpaceVim-layer-lang-go*
This layer support go development, include code completion and syntax check.
MAPPINGS
>
mode key function
normal <leader>gi go implements
normal <leader>gf go info
normal <leader>ge go rename
normal <leader>gr go run
normal <leader>gb go build
normal <leader>gt go test
normal <leader>gd go doc
normal <leader>gv go doc vertical
normal <leader>gco go coverage
<
2017-01-22 23:20:41 +08:00
==============================================================================
2017-01-31 19:05:59 +08:00
LANG#JAVA *SpaceVim-layer-lang-java*
2017-01-22 23:20:41 +08:00
This layer is for java development.
>
import-mappings:
mode key function
normal <F4> import class under corsor.
insert <F4> import class under corsor.
normal <leader>jI import missing classes.
normal <leader>jR remove unused imports.
normal <leader>ji smart import class under corsor.
normal <leader>jii same as <F4>
insert <c-j>I import missing imports.
insert <c-j>R remove unused imports.
insert <c-j>i smart import class under corsor.
insert <c-j>ii add import for class under corsor.
generate-mappings:
mode key function
normal <leader>jA generate accessors.
normal <leader>js generate setter accessor.
normal <leader>jg generate getter accessor.
normal <leader>ja generate setter and getter accessor.
normal <leader>jts generate toString function.
normal <leader>jeq generate equals and hashcode function.
normal <leader>jc generate constructor.
normal <leader>jcc 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 <leader>js generate setter accessor.
visual <leader>jg generate getter accessor.
visual <leader>ja generate setter and getter acctssor.
<
2017-01-22 23:25:19 +08:00
==============================================================================
2017-01-31 19:05:59 +08:00
LANG#PHP *SpaceVim-layer-lang-php*
2017-01-19 21:46:37 +08:00
2017-01-27 20:37:01 +08:00
this layer is for php development, and it provide auto codo completion, and
2017-01-19 21:46:37 +08:00
syntax check, and jump to the definition location.
2017-01-27 20:37:01 +08:00
requirement:
>
PHP 5.3+
PCNTL Extension
Msgpack 0.5.7+(for NeoVim) Extension or JSON(for Vim 7.4+) Extension
Composer Project
<
2017-01-19 21:46:37 +08:00
2017-02-02 01:57:06 +08:00
==============================================================================
LANG#PYTHON *SpaceVim-layer-lang-python*
To make this layer works well, you should install jedi.
MAPPINGS
>
mode key function
<
2017-01-31 19:05:59 +08:00
==============================================================================
2017-01-31 20:09:13 +08:00
LANG#RUST *SpaceVim-layer-lang-rust*
2017-01-26 16:03:18 +08:00
2017-01-27 21:49:05 +08:00
SpaceVim do not load this layer by default, if you are a rust developer, you
should add `call SpaceVim#layers#load('lang#rust')` to your |SpaceVim-config|
2017-01-26 16:03:18 +08:00
requirement:
1. racer : cargo install racer
2. export RUST_SRC_PATH : you can download src by : rustup component add
rust-src, and add below into your bashrc.
export RUST_SRC_PATH=~/.multirust/toolchains/[your-toolchain]/lib/rustlib/src/
rust/src
configuration:
1. add `let g:racer_cmd = "/path/to/racer/bin"` in to custom config, if you
has racer executable in you PATH. g:racer_cmd should be auto detect.
mappings:
>
mode key function
normal gd rust-definition
normal gs rust-definition-split
normal gx rust-definition-vertical
normal <leader>gd rust-doc
<
2017-01-26 16:14:06 +08:00
==============================================================================
2017-01-31 20:09:13 +08:00
LANG#XML *SpaceVim-layer-lang-xml*
when edite an xml file, the omni func is `xmlcomplete#CompleteTags`, you can
read the document in `autoload/xmlcomplete.vim` in vim or neovim runtime
directory.
==============================================================================
2017-02-02 22:52:10 +08:00
SHELL *SpaceVim-layer-shell*
SpaceVim use deol.nvim for shell support in neovim, and use vimshell for vim.
for info, read |deol| and |vimshell|.
==============================================================================
2017-01-25 20:04:17 +08:00
FAQ *SpaceVim-faq*
2017-01-25 20:44:05 +08:00
1. How to enable YouCompleteMe? (I do not recommend to use YouCompleteMe, it
is too big as a vim plugin, BTW I do not like using submodule in vim plugin,
it is hard to manager by vim 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, just get into it, otherwise clone
YouCompleteMe repo by
`git clone https://github.com/Valloric/YouCompleteMe.git`, after cloning,
get into it, run `git submodule update --init --recursive`.
step 3: compile YouCompleteMe with the feature you want. if you just want
support c family, you need run `./install.py --clang-completer`.
<
2017-01-25 20:04:17 +08:00
2016-12-31 19:07:05 +08:00
vim:tw=78:ts=8:ft=help:norl: