mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 17:40:06 +08:00
8657 lines
282 KiB
Plaintext
8657 lines
282 KiB
Plaintext
*SpaceVim.txt*
|
||
|
||
|
||
/###### /## /##/##
|
||
/##__ ## | ## | #|__/
|
||
| ## \__/ /###### /###### /####### /######| ## | ##/##/######/####
|
||
| ###### /##__ ##|____ ##/##_____//##__ #| ## / ##| #| ##_ ##_ ##
|
||
\____ #| ## \ ## /######| ## | ########\ ## ##/| #| ## \ ## \ ##
|
||
/## \ #| ## | ##/##__ #| ## | ##_____/ \ ###/ | #| ## | ## | ##
|
||
| ######| #######| ######| ######| ####### \ #/ | #| ## | ## | ##
|
||
\______/| ##____/ \_______/\_______/\_______/ \_/ |__|__/ |__/ |__/
|
||
| ##
|
||
| ##
|
||
|__/
|
||
wsdjeg *spacevim* *SpaceVim*
|
||
|
||
==============================================================================
|
||
CONTENTS *SpaceVim-contents*
|
||
1. Introduction.............................................. |SpaceVim-intro|
|
||
1. Highlighted Features............................... |SpaceVim-features|
|
||
2. Update and Rollback..................... |SpaceVim-update-and-rollback|
|
||
2. Options................................................. |SpaceVim-options|
|
||
1. autocomplete_method............. |SpaceVim-options-autocomplete_method|
|
||
2. autocomplete_parens............. |SpaceVim-options-autocomplete_parens|
|
||
3. bootstrap_after..................... |SpaceVim-options-bootstrap_after|
|
||
4. bootstrap_before................... |SpaceVim-options-bootstrap_before|
|
||
5. bootstrap_script................... |SpaceVim-options-bootstrap_script|
|
||
6. buffer_index_type................. |SpaceVim-options-buffer_index_type|
|
||
7. checkinstall........................... |SpaceVim-options-checkinstall|
|
||
8. code_runner_focus................. |SpaceVim-options-code_runner_focus|
|
||
9. colorscheme............................. |SpaceVim-options-colorscheme|
|
||
10. colorscheme_bg...................... |SpaceVim-options-colorscheme_bg|
|
||
11. commandline_prompt.............. |SpaceVim-options-commandline_prompt|
|
||
12. data_dir.................................. |SpaceVim-options-data_dir|
|
||
13. default_custom_leader........ |SpaceVim-options-default_custom_leader|
|
||
14. default_indent...................... |SpaceVim-options-default_indent|
|
||
15. disabled_plugins.................. |SpaceVim-options-disabled_plugins|
|
||
16. enable_bepo_layout.............. |SpaceVim-options-enable_bepo_layout|
|
||
17. enable_cursorcolumn............ |SpaceVim-options-enable_cursorcolumn|
|
||
18. enable_cursorline................ |SpaceVim-options-enable_cursorline|
|
||
19. enable_debug.......................... |SpaceVim-options-enable_debug|
|
||
20. enable_googlesuggest.......... |SpaceVim-options-enable_googlesuggest|
|
||
21. enable_guicolors.................. |SpaceVim-options-enable_guicolors|
|
||
22. enable_key_frequency.......... |SpaceVim-options-enable_key_frequency|
|
||
23. enable_list_mode.................. |SpaceVim-options-enable_list_mode|
|
||
24. enable_projects_cache........ |SpaceVim-options-enable_projects_cache|
|
||
25. enable_statusline_bfpath.. |SpaceVim-options-enable_statusline_bfpath|
|
||
26. enable_statusline_mode...... |SpaceVim-options-enable_statusline_mode|
|
||
27. enable_statusline_tag........ |SpaceVim-options-enable_statusline_tag|
|
||
28. enable_tabline_ft_icon...... |SpaceVim-options-enable_tabline_ft_icon|
|
||
29. enable_vimfiler_welcome.... |SpaceVim-options-enable_vimfiler_welcome|
|
||
30. enable_ycm.............................. |SpaceVim-options-enable_ycm|
|
||
31. error_symbol.......................... |SpaceVim-options-error_symbol|
|
||
32. escape_key_binding.............. |SpaceVim-options-escape_key_binding|
|
||
33. expand_tab.............................. |SpaceVim-options-expand_tab|
|
||
34. file_searching_tools.......... |SpaceVim-options-file_searching_tools|
|
||
35. filemanager............................ |SpaceVim-options-filemanager|
|
||
36. filetree_direction.............. |SpaceVim-options-filetree_direction|
|
||
37. guifont.................................... |SpaceVim-options-guifont|
|
||
38. home_files_number................ |SpaceVim-options-home_files_number|
|
||
39. if_ruby.................................... |SpaceVim-options-if_ruby|
|
||
40. info_symbol............................ |SpaceVim-options-info_symbol|
|
||
41. keep_server_alive................ |SpaceVim-options-keep_server_alive|
|
||
42. language.................................. |SpaceVim-options-language|
|
||
43. lazy_conf_timeout................ |SpaceVim-options-lazy_conf_timeout|
|
||
44. leader_guide_theme.............. |SpaceVim-options-leader_guide_theme|
|
||
45. lint_engine............................ |SpaceVim-options-lint_engine|
|
||
46. lint_on_the_fly.................... |SpaceVim-options-lint_on_the_fly|
|
||
47. max_column.............................. |SpaceVim-options-max_column|
|
||
48. plugin_bundle_dir................ |SpaceVim-options-plugin_bundle_dir|
|
||
49. plugin_manager_processes.. |SpaceVim-options-plugin_manager_processes|
|
||
50. project_auto_root................ |SpaceVim-options-project_auto_root|
|
||
51. project_non_root.................. |SpaceVim-options-project_non_root|
|
||
52. project_rooter_outermost.. |SpaceVim-options-project_rooter_outermost|
|
||
53. project_rooter_patterns.... |SpaceVim-options-project_rooter_patterns|
|
||
54. projects_cache_num.............. |SpaceVim-options-projects_cache_num|
|
||
55. realtime_leader_guide........ |SpaceVim-options-realtime_leader_guide|
|
||
56. relativenumber...................... |SpaceVim-options-relativenumber|
|
||
57. retry_cnt................................ |SpaceVim-options-retry_cnt|
|
||
58. search_tools.......................... |SpaceVim-options-search_tools|
|
||
59. sidebar_width........................ |SpaceVim-options-sidebar_width|
|
||
60. snippet_engine...................... |SpaceVim-options-snippet_engine|
|
||
61. src_root.................................. |SpaceVim-options-src_root|
|
||
62. statusline_iseparator........ |SpaceVim-options-statusline_iseparator|
|
||
63. statusline_left.................... |SpaceVim-options-statusline_left|
|
||
64. statusline_right.................. |SpaceVim-options-statusline_right|
|
||
65. statusline_separator.......... |SpaceVim-options-statusline_separator|
|
||
66. statusline_unicode.............. |SpaceVim-options-statusline_unicode|
|
||
67. terminal_cursor_shape........ |SpaceVim-options-terminal_cursor_shape|
|
||
68. todo_close_list......................... |SpaceVim-options-close_list|
|
||
69. todo_labels............................ |SpaceVim-options-todo_labels|
|
||
70. todo_prefix............................ |SpaceVim-options-todo_prefix|
|
||
71. vim_help_language................ |SpaceVim-options-vim_help_language|
|
||
72. vimcompatible........................ |SpaceVim-options-vimcompatible|
|
||
73. warning_symbol...................... |SpaceVim-options-warning_symbol|
|
||
74. wildignore.............................. |SpaceVim-options-wildignore|
|
||
75. windisk_encoding.................. |SpaceVim-options-windisk_encoding|
|
||
76. windows_index_type.............. |SpaceVim-options-windows_index_type|
|
||
77. windows_leader...................... |SpaceVim-options-windows_leader|
|
||
78. windows_smartclose.............. |SpaceVim-options-windows_smartclose|
|
||
3. Configuration............................................ |SpaceVim-config|
|
||
4. Commands............................................... |SpaceVim-commands|
|
||
5. Public functions...................................... |SpaceVim-functions|
|
||
6. Layers................................................... |SpaceVim-layers|
|
||
1. Chinese...................................... |SpaceVim-layers-chinese|
|
||
2. VersionControl........................ |SpaceVim-layers-VersionControl|
|
||
3. autocomplete............................ |SpaceVim-layers-autocomplete|
|
||
4. chat............................................ |SpaceVim-layers-chat|
|
||
5. checkers.................................... |SpaceVim-layers-checkers|
|
||
6. colorscheme.............................. |SpaceVim-layers-colorscheme|
|
||
7. core............................................ |SpaceVim-layers-core|
|
||
8. core#statuscolumn.................. |SpaceVim-layers-core-statuscolumn|
|
||
9. core#statusline...................... |SpaceVim-layers-core-statusline|
|
||
10. core#tabline........................... |SpaceVim-layers-core-tabline|
|
||
11. cscope....................................... |SpaceVim-layers-cscope|
|
||
12. ctrlp......................................... |SpaceVim-layers-ctrlp|
|
||
13. debug......................................... |SpaceVim-layers-debug|
|
||
14. edit........................................... |SpaceVim-layers-edit|
|
||
15. exprfold................................... |SpaceVim-layers-exprfold|
|
||
16. foldsearch............................... |SpaceVim-layers-foldsearch|
|
||
17. format....................................... |SpaceVim-layers-format|
|
||
18. framework#django................... |SpaceVim-layers-framework-django|
|
||
19. fzf............................................. |SpaceVim-layers-fzf|
|
||
20. git............................................. |SpaceVim-layers-git|
|
||
21. github....................................... |SpaceVim-layers-github|
|
||
22. gtags......................................... |SpaceVim-layers-gtags|
|
||
23. incsearch................................. |SpaceVim-layers-incsearch|
|
||
24. indentmove............................... |SpaceVim-layers-indentmove|
|
||
25. lang#WebAssembly................... |SpaceVim-layers-lang-WebAssembly|
|
||
26. lang#actionscript................. |SpaceVim-layers-lang-actionscript|
|
||
27. lang#agda................................. |SpaceVim-layers-lang-agda|
|
||
28. lang#asciidoc......................... |SpaceVim-layers-lang-asciidoc|
|
||
29. lang#aspectj........................... |SpaceVim-layers-lang-aspectj|
|
||
30. lang#assembly......................... |SpaceVim-layers-lang-assembly|
|
||
31. lang#autohotkey..................... |SpaceVim-layers-lang-autohotkey|
|
||
32. lang#autoit............................. |SpaceVim-layers-lang-autoit|
|
||
33. lang#batch............................... |SpaceVim-layers-lang-batch|
|
||
34. lang#c....................................... |SpaceVim-layers-lang-c|
|
||
35. lang#chapel............................. |SpaceVim-layers-lang-chapel|
|
||
36. lang#clojure........................... |SpaceVim-layers-lang-clojure|
|
||
37. lang#cmake............................... |SpaceVim-layers-lang-cmake|
|
||
38. lang#coffeescript................. |SpaceVim-layers-lang-coffeescript|
|
||
39. lang#crystal........................... |SpaceVim-layers-lang-crystal|
|
||
40. lang#csharp............................. |SpaceVim-layers-lang-csharp|
|
||
41. lang#d....................................... |SpaceVim-layers-lang-d|
|
||
42. lang#dart................................. |SpaceVim-layers-lang-dart|
|
||
43. lang#dockerfile..................... |SpaceVim-layers-lang-dockerfile|
|
||
44. lang#e....................................... |SpaceVim-layers-lang-e|
|
||
45. lang#eiffel............................. |SpaceVim-layers-lang-eiffel|
|
||
46. lang#elixir............................. |SpaceVim-layers-lang-elixir|
|
||
47. lang#elm................................... |SpaceVim-layers-lang-elm|
|
||
48. lang#erlang............................. |SpaceVim-layers-lang-erlang|
|
||
49. lang#extra............................... |SpaceVim-layers-lang-extra|
|
||
50. lang#fennel............................. |SpaceVim-layers-lang-fennel|
|
||
51. lang#forth............................... |SpaceVim-layers-lang-forth|
|
||
52. lang#fortran........................... |SpaceVim-layers-lang-fortran|
|
||
53. lang#foxpro............................. |SpaceVim-layers-lang-foxpro|
|
||
54. lang#fsharp............................. |SpaceVim-layers-lang-fsharp|
|
||
55. lang#go..................................... |SpaceVim-layers-lang-go|
|
||
56. lang#goby................................. |SpaceVim-layers-lang-goby|
|
||
57. lang#gosu................................. |SpaceVim-layers-lang-gosu|
|
||
58. lang#graphql........................... |SpaceVim-layers-lang-graphql|
|
||
59. lang#groovy............................. |SpaceVim-layers-lang-groovy|
|
||
60. lang#hack................................. |SpaceVim-layers-lang-hack|
|
||
61. lang#haskell........................... |SpaceVim-layers-lang-haskell|
|
||
62. lang#haxe................................. |SpaceVim-layers-lang-haxe|
|
||
63. lang#html................................. |SpaceVim-layers-lang-html|
|
||
64. lang#hy..................................... |SpaceVim-layers-lang-hy|
|
||
65. lang#idris............................... |SpaceVim-layers-lang-idris|
|
||
66. lang#io..................................... |SpaceVim-layers-lang-io|
|
||
67. lang#j....................................... |SpaceVim-layers-lang-j|
|
||
68. lang#janet............................... |SpaceVim-layers-lang-janet|
|
||
69. lang#java................................. |SpaceVim-layers-lang-java|
|
||
70. lang#javascript..................... |SpaceVim-layers-lang-javascript|
|
||
71. lang#jr..................................... |SpaceVim-layers-lang-jr|
|
||
72. lang#json................................. |SpaceVim-layers-lang-json|
|
||
73. lang#jsonnet........................... |SpaceVim-layers-lang-jsonnet|
|
||
74. lang#julia............................... |SpaceVim-layers-lang-julia|
|
||
75. lang#kotlin............................. |SpaceVim-layers-lang-kotlin|
|
||
76. lang#lasso............................... |SpaceVim-layers-lang-lasso|
|
||
77. lang#latex............................... |SpaceVim-layers-lang-latex|
|
||
78. lang#liquid............................. |SpaceVim-layers-lang-liquid|
|
||
79. lang#lisp................................. |SpaceVim-layers-lang-lisp|
|
||
80. lang#livescript..................... |SpaceVim-layers-lang-livescript|
|
||
81. lang#lua................................... |SpaceVim-layers-lang-lua|
|
||
82. lang#markdown......................... |SpaceVim-layers-lang-markdown|
|
||
83. lang#moonscript..................... |SpaceVim-layers-lang-moonscript|
|
||
84. lang#nim................................... |SpaceVim-layers-lang-nim|
|
||
85. lang#nix................................... |SpaceVim-layers-lang-nix|
|
||
86. lang#ocaml............................... |SpaceVim-layers-lang-ocaml|
|
||
87. lang#octave............................. |SpaceVim-layers-lang-octave|
|
||
88. lang#pact................................. |SpaceVim-layers-lang-pact|
|
||
89. lang#pascal............................. |SpaceVim-layers-lang-pascal|
|
||
90. lang#perl................................. |SpaceVim-layers-lang-perl|
|
||
91. lang#php................................... |SpaceVim-layers-lang-php|
|
||
92. lang#plantuml......................... |SpaceVim-layers-lang-plantuml|
|
||
93. lang#pony................................. |SpaceVim-layers-lang-pony|
|
||
94. lang#postscript..................... |SpaceVim-layers-lang-postscript|
|
||
95. lang#powershell..................... |SpaceVim-layers-lang-powershell|
|
||
96. lang#processing..................... |SpaceVim-layers-lang-processing|
|
||
97. lang#prolog............................. |SpaceVim-layers-lang-prolog|
|
||
98. lang#puppet............................. |SpaceVim-layers-lang-puppet|
|
||
99. lang#purescript..................... |SpaceVim-layers-lang-purescript|
|
||
100. lang#python............................ |SpaceVim-layers-lang-python|
|
||
101. lang#qml.................................. |SpaceVim-layers-lang-qml|
|
||
102. lang#r...................................... |SpaceVim-layers-lang-r|
|
||
103. lang#racket............................ |SpaceVim-layers-lang-racket|
|
||
104. lang#racket............................... |SpaceVim-layers-lang-red|
|
||
105. lang#reason............................ |SpaceVim-layers-lang-reason|
|
||
106. lang#ring................................ |SpaceVim-layers-lang-ring|
|
||
107. lang#ruby................................ |SpaceVim-layers-lang-ruby|
|
||
108. lang#rust................................ |SpaceVim-layers-lang-rust|
|
||
109. lang#scala.............................. |SpaceVim-layers-lang-scala|
|
||
110. lang#scheme............................ |SpaceVim-layers-lang-scheme|
|
||
111. lang#sh.................................... |SpaceVim-layers-lang-sh|
|
||
112. lang#smalltalk...................... |SpaceVim-layers-lang-smalltalk|
|
||
113. lang#sml.................................. |SpaceVim-layers-lang-sml|
|
||
114. lang#sql.................................. |SpaceVim-layers-lang-sql|
|
||
115. lang#swift.............................. |SpaceVim-layers-lang-swift|
|
||
116. lang#swig................................ |SpaceVim-layers-lang-swig|
|
||
117. lang#tcl.................................. |SpaceVim-layers-lang-tcl|
|
||
118. lang#teal................................ |SpaceVim-layers-lang-teal|
|
||
119. lang#toml................................ |SpaceVim-layers-lang-toml|
|
||
120. lang#typescript.................... |SpaceVim-layers-lang-typescript|
|
||
121. lang#v...................................... |SpaceVim-layers-lang-v|
|
||
122. lang#vala................................ |SpaceVim-layers-lang-vala|
|
||
123. lang#vbnet.............................. |SpaceVim-layers-lang-vbnet|
|
||
124. lang#verilog.......................... |SpaceVim-layers-lang-verilog|
|
||
125. lang#vim.................................. |SpaceVim-layers-lang-vim|
|
||
126. lang#vue.................................. |SpaceVim-layers-lang-vue|
|
||
127. lang#wdl.................................. |SpaceVim-layers-lang-wdl|
|
||
128. lang#wolfram.......................... |SpaceVim-layers-lang-wolfram|
|
||
129. lang#xml.................................. |SpaceVim-layers-lang-xml|
|
||
130. lang#xquery............................ |SpaceVim-layers-lang-xquery|
|
||
131. lang#yang................................ |SpaceVim-layers-lang-yang|
|
||
132. lang#zig.................................. |SpaceVim-layers-lang-zig|
|
||
133. language server protocol....................... |SpaceVim-layers-lsp|
|
||
134. leaderf.................................... |SpaceVim-layers-leaderf|
|
||
135. mail.......................................... |SpaceVim-layers-mail|
|
||
136. operator.................................. |SpaceVim-layers-operator|
|
||
137. shell........................................ |SpaceVim-layers-shell|
|
||
138. ssh............................................ |SpaceVim-layers-ssh|
|
||
139. telescope................................ |SpaceVim-layers-telescope|
|
||
140. test.......................................... |SpaceVim-layers-test|
|
||
141. tmux.......................................... |SpaceVim-layers-tmux|
|
||
142. tools#cpicker........................ |SpaceVim-layers-tools-cpicker|
|
||
143. tools#dash.............................. |SpaceVim-layers-tools-dash|
|
||
144. tools#mpv................................ |SpaceVim-layers-tools-mpv|
|
||
145. tools#screensaver................ |SpaceVim-layers-tools-screensaver|
|
||
146. tools#zeal.............................. |SpaceVim-layers-tools-zeal|
|
||
147. treesitter.............................. |SpaceVim-layers-treesitter|
|
||
148. ui.............................................. |SpaceVim-layers-ui|
|
||
149. unite........................................ |SpaceVim-layers-unite|
|
||
150. xmake........................................ |SpaceVim-layers-xmake|
|
||
7. Usage..................................................... |SpaceVim-usage|
|
||
1. Editing....................................... |SpaceVim-usage-editing|
|
||
2. Error handling......................... |SpaceVim-usage-error-handling|
|
||
3. File Tree................................... |SpaceVim-usage-file-tree|
|
||
4. Toggle UI................................... |SpaceVim-usage-toggle-ui|
|
||
5. alternate file......................... |SpaceVim-usage-alternate-file|
|
||
6. buffers-and-files................... |SpaceVim-usage-buffers-and-files|
|
||
7. command-line-mode................... |SpaceVim-usage-command-line-mode|
|
||
8. custom_plugins......................... |SpaceVim-usage-custom_plugins|
|
||
9. repl............................................. |SpaceVim-usage-repl|
|
||
10. search-and-replace................ |SpaceVim-usage-search-and-replace|
|
||
11. tasks.......................................... |SpaceVim-usage-tasks|
|
||
12. undo-tree................................... |SpaceVim-usage-undotree|
|
||
13. windows-and-tabs.................... |SpaceVim-usage-windows-and-tabs|
|
||
8. Plugins................................................. |SpaceVim-plugins|
|
||
1. Mapping Guide......................... |SpaceVim-plugins-mapping-guide|
|
||
2. Symbol highlighter............... |SpaceVim-plugins-symbol-highlighter|
|
||
3. alternate................................. |SpaceVim-plugins-alternate|
|
||
4. autosave................................... |SpaceVim-plugins-autosave|
|
||
5. flygrep..................................... |SpaceVim-plugins-flygrep|
|
||
6. iedit......................................... |SpaceVim-plugins-iedit|
|
||
7. runner....................................... |SpaceVim-plugins-runner|
|
||
8. scrollbar................................. |SpaceVim-plugins-scrollbar|
|
||
9. tab manager.............................. |SpaceVim-plugins-tabmanager|
|
||
10. todo manager........................... |SpaceVim-plugins-todomanager|
|
||
9. API......................................................... |SpaceVim-api|
|
||
1. clock............................................. |SpaceVim-api-clock|
|
||
2. cmdlinemenu................................. |SpaceVim-api-cmdlinemenu|
|
||
3. data#dict..................................... |SpaceVim-api-data-dict|
|
||
4. data#list..................................... |SpaceVim-api-data-list|
|
||
5. data#number................................. |SpaceVim-api-data-number|
|
||
6. data#string................................. |SpaceVim-api-data-string|
|
||
7. file............................................... |SpaceVim-api-file|
|
||
8. job................................................. |SpaceVim-api-job|
|
||
9. logger........................................... |SpaceVim-api-logger|
|
||
10. notify.......................................... |SpaceVim-api-notify|
|
||
11. password...................................... |SpaceVim-api-password|
|
||
12. prompt.......................................... |SpaceVim-api-prompt|
|
||
13. sid............................................ |SpaceVim-api-vim-sid|
|
||
14. system.......................................... |SpaceVim-api-system|
|
||
15. time.............................................. |SpaceVim-api-time|
|
||
16. unicode#box................................ |SpaceVim-api-unicode-box|
|
||
17. vim#buffer.................................. |SpaceVim-api-vim-buffer|
|
||
18. vim#command................................ |SpaceVim-api-vim-command|
|
||
19. vim#compatible.......................... |SpaceVim-api-vim-compatible|
|
||
20. vim#message................................ |SpaceVim-api-vim-message|
|
||
21. vim#window.................................. |SpaceVim-api-vim-window|
|
||
10. Development................................................ |SpaceVim-dev|
|
||
1. License......................................... |SpaceVim-dev-license|
|
||
2. Runtime Log..................................... |SpaceVim-runtime-log|
|
||
3. commit-style-guide................... |SpaceVim-dev-commit-style-guide|
|
||
4. merge requese............................. |SpaceVim-dev-merge-request|
|
||
11. Community............................................ |SpaceVim-community|
|
||
12. FAQ........................................................ |SpaceVim-faq|
|
||
13. Roadmap................................................ |SpaceVim-roadmap|
|
||
14. Changelog............................................ |SpaceVim-changelog|
|
||
|
||
==============================================================================
|
||
INTRODUCTION *SpaceVim-intro*
|
||
|
||
SpaceVim is a modular configuration of Vim and Neovim. It's inspired by
|
||
spacemacs. It manages collections of plugins in layers, which help to collect
|
||
related packages together to provide features. This approach helps keep the
|
||
configuration organized and reduces overhead for the user by keeping them from
|
||
having to think about what packages to install.
|
||
|
||
==============================================================================
|
||
HIGHLIGHTED FEATURES *SpaceVim-features*
|
||
|
||
1. Modularization: Plugins are organized in |SpaceVim-layers|.
|
||
2. Compatible API: A series of |SpaceVim-api| for Vim/Neovim.
|
||
3. Great documentation: Everything is documented in `:h SpaceVim`.
|
||
4. Better experience: Most of the core plugins have been rewritten using
|
||
Lua.
|
||
5. Beautiful UI: The interface has been carefully designed.
|
||
6. Mnemonic key bindings: Key bindings are organized using mnemonic
|
||
prefixes.
|
||
7. Lower the risk of RSI: Heavily using the `<Space>` key instead of
|
||
modifiers.
|
||
|
||
==============================================================================
|
||
UPDATE AND ROLLBACK *SpaceVim-update-and-rollback*
|
||
|
||
UPDATE SPACEVIM ITSELF
|
||
|
||
There are several methods of updating the core files of SpaceVim. It is
|
||
recommended to update the packages first; see the next section.
|
||
|
||
1. Automatic Updates
|
||
|
||
By default, this feature is disabled. It would slow down the startup of
|
||
Vim/Neovim. If you like this feature, add the following to your custom
|
||
configuration file.
|
||
>
|
||
[options]
|
||
automatic_update = true
|
||
<
|
||
|
||
SpaceVim will automatically check for a new version every startup. You have to
|
||
restart Vim after updating.
|
||
|
||
2. Updating from the SpaceVim Buffer
|
||
|
||
Users can use command `:SPUpdate SpaceVim` to update SpaceVim. This command
|
||
will open a new buffer to show the process of updating.
|
||
|
||
3. Updating Manually with git
|
||
|
||
For users who prefer to use the command line, they can use the following
|
||
command in a terminal to update SpaceVim manually:
|
||
>
|
||
git -C ~/.SpaceVim pull
|
||
<
|
||
|
||
UPDATE PLUGINS
|
||
|
||
Use `:SPUpdate` command to update all the plugins and SpaceVim itself. After
|
||
`:SPUpdate`, you can assign plugins need to be updated. Use `Tab` to complete
|
||
plugin names after `:SPUpdate`.
|
||
|
||
REINSTALL PLUGINS
|
||
|
||
When a plugin has failed to update or is broken, Use the `:SPReinstall`
|
||
command to reinstall the plugin. The plugin's name can be completed via the
|
||
key binding `<Tab>`.
|
||
|
||
For example:
|
||
>
|
||
:SPReinstall echodoc.vim
|
||
<
|
||
|
||
GET SPACEVIM LOG
|
||
|
||
The runtime log of SpaceVim can be obtained via the key binding `SPC h L`. To
|
||
get the debug information about the current SpaceVim environment, Use the
|
||
command `:SPDebugInfo!`. This command will open a new buffer where default
|
||
information will be shown. You can also use `SPC h I` to open a buffer with
|
||
SpaceVim's issue template.
|
||
|
||
==============================================================================
|
||
OPTIONS *SpaceVim-options*
|
||
|
||
The very first time SpaceVim starts up, it will ask you to choose a mode,
|
||
`basic mode` or `dark powered mode`. Then it will create a
|
||
`.SpaceVim.d/init.toml` file in your $HOME directory. All the user
|
||
configuration files are stored in ~/.SpaceVim.d/ directory.
|
||
|
||
`~/.SpaceVim.d/` will also be added to |'runtimepath'|.
|
||
|
||
It is also possible to override the location of `~/.SpaceVim.d/` by using the
|
||
environment variable `$SPACEVIMDIR`. Of course, symlinks can be used to change
|
||
the location of this directory.
|
||
|
||
SpaceVim also supports project specific configuration files. The project
|
||
configuration file is `.SpaceVim.d/init.toml` in the root of the project. The
|
||
directory `{project root}/.SpaceVim.d/` will also be added to the
|
||
|'runtimepath'|.
|
||
|
||
NOTE:Please be aware that if there are errors in your init.toml, all the
|
||
setting in this toml file will not be applied.
|
||
|
||
All SpaceVim options can be found in |SpaceVim-options|, the option name is
|
||
same as the old vim option, but with the `g:spacevim_` prefix removed. For
|
||
example:
|
||
>
|
||
g:spacevim_enable_statusline_tag -> enable_statusline_tag
|
||
<
|
||
If the fuzzy finder layer is loaded, users can use key binding `SPC h SPC` to
|
||
fuzzy find the documentation of SpaceVim options.
|
||
|
||
ADD CUSTOM PLUGINS
|
||
|
||
If you want to add plugins from GitHub, just add the repo name to the
|
||
custom_plugins section:
|
||
>
|
||
[[custom_plugins]]
|
||
repo = 'lilydjwg/colorizer'
|
||
# `on_cmd` option means this plugin will be loaded
|
||
# only when the specific commands are called.
|
||
# for example, when `:ColorHighlight` or `:ColorToggle`
|
||
# commands are called.
|
||
on_cmd = ['ColorHighlight', 'ColorToggle']
|
||
# `on_func` option means this plugin will be loaded
|
||
# only when the specific functions are called.
|
||
# for example, when `colorizer#ColorToggle()` function is called.
|
||
on_func = 'colorizer#ColorToggle'
|
||
# `merged` option is used for merging plugins directory.
|
||
# When `merged` is `true`, all files in this custom plugin
|
||
# will be merged into `~/.cache/vimfiles/.cache/init.vim/`
|
||
# for neovim or `~/.cache/vimfiles/.cache/vimrc/` for vim.
|
||
merged = false
|
||
# For more options see `:h dein-options`.
|
||
<
|
||
You can also use the url of the repository, for example:
|
||
>
|
||
[[custom_plugins]]
|
||
repo = "https://gitlab.com/code-stats/code-stats-vim.git"
|
||
merged = false
|
||
<
|
||
To add multiple custom plugins:
|
||
>
|
||
[[custom_plugins]]
|
||
repo = 'lilydjwg/colorizer'
|
||
merged = false
|
||
|
||
[[custom_plugins]]
|
||
repo = 'joshdick/onedark.vim'
|
||
merged = false
|
||
<
|
||
If you want to disable plugins which are added by SpaceVim, you can use the
|
||
options: |SpaceVim-options-disabled_plugins|.
|
||
>
|
||
[options]
|
||
# NOTE: the value should be a list, and each item is the name of the
|
||
plugin.
|
||
disabled_plugins = ["clighter", "clighter8"]
|
||
<
|
||
|
||
==============================================================================
|
||
AUTOCOMPLETE_METHOD *SpaceVim-options-autocomplete_method*
|
||
|
||
Set the autocomplete engine of spacevim, the default logic is:
|
||
>
|
||
if has('nvim-0.9.0')
|
||
let g:spacevim_autocomplete_method = 'nvim-cmp'
|
||
elseif 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
|
||
<
|
||
|
||
and you can alse set this option to coc, then coc.nvim will be used. If you
|
||
are using neovim, you can also set this option to `nvim-cmp`, then nvim-cmp
|
||
will be used.
|
||
|
||
==============================================================================
|
||
AUTOCOMPLETE_PARENS *SpaceVim-options-autocomplete_parens*
|
||
|
||
Enable/Disable autocompletion of parentheses, default is true (enabled).
|
||
>
|
||
autocomplete_parens = false
|
||
<
|
||
|
||
==============================================================================
|
||
BOOTSTRAP_AFTER *SpaceVim-options-bootstrap_after*
|
||
|
||
set the bootstrap_after function, this function will be called on `VimEnter`
|
||
event.
|
||
>
|
||
[options]
|
||
bootstrap_after = 'myspacevim#after'
|
||
<
|
||
|
||
==============================================================================
|
||
BOOTSTRAP_BEFORE *SpaceVim-options-bootstrap_before*
|
||
|
||
set the bootstrap_before function, this function will be called when loading
|
||
custom configuration file. for example:
|
||
>
|
||
[options]
|
||
bootstrap_before = 'myspacevim#before'
|
||
<
|
||
|
||
==============================================================================
|
||
BOOTSTRAP_SCRIPT *SpaceVim-options-bootstrap_script*
|
||
|
||
set the bootstrap_script string, this string will be called via `nvim_exec`,
|
||
that means this option only can be used in neovim.
|
||
>
|
||
[options]
|
||
bootstrap_script = '''
|
||
let g:foo_test = 1
|
||
let g:zff_test = 1
|
||
'''
|
||
<
|
||
|
||
==============================================================================
|
||
BUFFER_INDEX_TYPE *SpaceVim-options-buffer_index_type*
|
||
|
||
Set SpaceVim buffer index type, default is 4.
|
||
>
|
||
# types:
|
||
# 0: 1 ➛ ➊
|
||
# 1: 1 ➛ ➀
|
||
# 2: 1 ➛ ⓵
|
||
# 3: 1 ➛ ¹
|
||
# 4: 1 ➛ 1
|
||
buffer_index_type = 1
|
||
<
|
||
|
||
==============================================================================
|
||
CHECKINSTALL *SpaceVim-options-checkinstall*
|
||
|
||
Enable/Disable checkinstall on SpaceVim startup. Default is true.
|
||
>
|
||
checkinstall = true
|
||
<
|
||
|
||
==============================================================================
|
||
CODE_RUNNER_FOCUS *SpaceVim-options-code_runner_focus*
|
||
|
||
enable/disable code runner window focus mode, by default this option is
|
||
`false`, to enable this mode, set this option to `true`.
|
||
>
|
||
code_runner_focus = true
|
||
<
|
||
|
||
==============================================================================
|
||
COLORSCHEME *SpaceVim-options-colorscheme*
|
||
|
||
The colorscheme of SpaceVim. Default is 'gruvbox'.
|
||
|
||
==============================================================================
|
||
COLORSCHEME_BG *SpaceVim-options-colorscheme_bg*
|
||
|
||
The background of colorscheme. Default is 'dark'.
|
||
|
||
==============================================================================
|
||
COMMANDLINE_PROMPT *SpaceVim-options-commandline_prompt*
|
||
|
||
Config the command line prompt for flygrep and denite etc. Default is `>`, for
|
||
example:
|
||
>
|
||
commandline_prompt = '➭'
|
||
<
|
||
|
||
==============================================================================
|
||
DATA_DIR *SpaceVim-options-data_dir*
|
||
|
||
Set the cache directory of SpaceVim. Default is `$XDG_CACHE_HOME` or if not
|
||
set `~/.cache¸.
|
||
>
|
||
data_dir = "~/.cache"
|
||
<
|
||
|
||
==============================================================================
|
||
DEFAULT_CUSTOM_LEADER *SpaceVim-options-default_custom_leader*
|
||
|
||
Change the default custom leader of SpaceVim. Default is <Space>.
|
||
>
|
||
default_custom_leader = "<Space>"
|
||
<
|
||
|
||
==============================================================================
|
||
DEFAULT_INDENT *SpaceVim-options-default_indent*
|
||
|
||
Change the default indentation of SpaceVim. Default is 2.
|
||
>
|
||
default_indent = 2
|
||
<
|
||
|
||
==============================================================================
|
||
DISABLED_PLUGINS *SpaceVim-options-disabled_plugins*
|
||
|
||
|
||
>
|
||
disabled_plugins = ['vim-foo', 'vim-bar']
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_BEPO_LAYOUT *SpaceVim-options-enable_bepo_layout*
|
||
|
||
Enable/Disable bepo layout, by default it is disabled.
|
||
>
|
||
enable_bepo_layout = true
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_CURSORCOLUMN *SpaceVim-options-enable_cursorcolumn*
|
||
|
||
Enable/Disable cursorcolumn. Default is 0, cursorcolumn will be highlighted in
|
||
normal mode. To enable this feature:
|
||
>
|
||
enable_cursorcolumn = true
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_CURSORLINE *SpaceVim-options-enable_cursorline*
|
||
|
||
Enable/Disable cursorline. Default is true, cursorline will be highlighted in
|
||
normal mode.To disable this feature:
|
||
>
|
||
enable_cursorline = false
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_DEBUG *SpaceVim-options-enable_debug*
|
||
|
||
Enable/Disable debug mode for SpaceVim. Default is false.
|
||
>
|
||
enable_debug = 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 false.
|
||
>
|
||
enable_guicolors = true
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_KEY_FREQUENCY *SpaceVim-options-enable_key_frequency*
|
||
|
||
Enable/Disable key frequency catching of SpaceVim. default value is 0. to
|
||
enable it:
|
||
>
|
||
enable_key_frequency = true
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_LIST_MODE *SpaceVim-options-enable_list_mode*
|
||
|
||
Enable/Disable list mode, by default it is disabled.
|
||
|
||
==============================================================================
|
||
ENABLE_PROJECTS_CACHE *SpaceVim-options-enable_projects_cache*
|
||
|
||
Enable/Disable cross session projects cache. Enabled by default.
|
||
|
||
==============================================================================
|
||
ENABLE_STATUSLINE_BFPATH *SpaceVim-options-enable_statusline_bfpath*
|
||
|
||
Enable/Disable showing full path of current buffer on statusline, disabled by
|
||
default, to enable this feature:
|
||
>
|
||
enable_statusline_bfpath = true
|
||
<
|
||
|
||
==============================================================================
|
||
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_STATUSLINE_TAG *SpaceVim-options-enable_statusline_tag*
|
||
|
||
Enable/Disable showing current tag on statusline
|
||
>
|
||
enable_statusline_tag = false
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_TABLINE_FT_ICON *SpaceVim-options-enable_tabline_ft_icon*
|
||
|
||
Enable/Disable tabline filetype icon. default is false. To enable this
|
||
feature:
|
||
>
|
||
enable_tabline_ft_icon = true
|
||
<
|
||
|
||
==============================================================================
|
||
ENABLE_VIMFILER_WELCOME *SpaceVim-options-enable_vimfiler_welcome*
|
||
|
||
Enable/Disable vimfiler in the welcome windows. Default is true. This will
|
||
cause vim to start up slowly if there are too many files in the current
|
||
directory.
|
||
>
|
||
enable_vimfiler_welcome = false
|
||
<
|
||
|
||
==============================================================================
|
||
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 = "+"
|
||
<
|
||
|
||
==============================================================================
|
||
ESCAPE_KEY_BINDING *SpaceVim-options-escape_key_binding*
|
||
|
||
Set the key binding for switch to normal mode in insert mode. Default is `jk`,
|
||
to disable this key binding, set this option to empty string.
|
||
>
|
||
escape_key_binding = 'jk'
|
||
<
|
||
|
||
==============================================================================
|
||
EXPAND_TAB *SpaceVim-options-expand_tab*
|
||
|
||
In Insert mode: Use the appropriate number of spaces to insert a <Tab>
|
||
|
||
==============================================================================
|
||
FILE_SEARCHING_TOOLS *SpaceVim-options-file_searching_tools*
|
||
|
||
Set the default file searching tool used by `SPC f /`, by default it is `[]`.
|
||
The first item in this list is the name of the tool, the second one is the
|
||
default command. for example:
|
||
>
|
||
file_searching_tools = ['find', 'find -not -iwholename "*.git*" ']
|
||
<
|
||
|
||
==============================================================================
|
||
FILEMANAGER *SpaceVim-options-filemanager*
|
||
|
||
The default file manager of SpaceVim. Default is 'nerdtree'. you can also use:
|
||
1. defx
|
||
2. vimfiler
|
||
3. neo-tree
|
||
4: nvim-tree
|
||
|
||
==============================================================================
|
||
FILETREE_DIRECTION *SpaceVim-options-filetree_direction*
|
||
|
||
Config the direction of file tree. Default is 'right'. you can also set to
|
||
'left'.
|
||
|
||
NOTE: if it is 'left', the tagbar will be move to right.
|
||
|
||
==============================================================================
|
||
GUIFONT *SpaceVim-options-guifont*
|
||
|
||
Set the guifont of SpaceVim. Default is empty.
|
||
>
|
||
guifont = "SauceCodePro Nerd Font Mono:h11"
|
||
<
|
||
|
||
==============================================================================
|
||
HOME_FILES_NUMBER *SpaceVim-options-home_files_number*
|
||
|
||
Change the list number of files for SpaceVim home. Default is 6.
|
||
>
|
||
home_files_number = 6
|
||
<
|
||
|
||
==============================================================================
|
||
IF_RUBY *SpaceVim-options-if_ruby*
|
||
|
||
Neovim if_ruby provider is too slow, If you are sure that your nvim does not
|
||
support ruby, set this option to false. default is true.
|
||
|
||
==============================================================================
|
||
INFO_SYMBOL *SpaceVim-options-info_symbol*
|
||
|
||
Set the information symbol for SpaceVim's syntax maker. Default is '🛈'.
|
||
>
|
||
info_symbol = 'i'
|
||
<
|
||
|
||
==============================================================================
|
||
KEEP_SERVER_ALIVE *SpaceVim-options-keep_server_alive*
|
||
|
||
Option for keep the spacevim server ailive
|
||
|
||
==============================================================================
|
||
LANGUAGE *SpaceVim-options-language*
|
||
|
||
Set the message language of vim. Default is 'en_US.UTF-8'.
|
||
>
|
||
language = 'en_CA.utf8'
|
||
<
|
||
|
||
==============================================================================
|
||
LAZY_CONF_TIMEOUT *SpaceVim-options-lazy_conf_timeout*
|
||
|
||
set the waiting time of lazy loading config in milliseconds. This will be
|
||
applied to load layer config, and lazy plugin, and end function of SpaceVim.
|
||
default is 300 ms.
|
||
|
||
==============================================================================
|
||
LEADER_GUIDE_THEME *SpaceVim-options-leader_guide_theme*
|
||
|
||
Enable/Disable realtime leader guide. Default is true. to disable it: Set the
|
||
key mapping guide theme, the default theme is `leaderguide`.
|
||
|
||
available themes:
|
||
|
||
`leaderguide`: same as LeaderGuide.vim
|
||
|
||
`whichkey`: same as which-key.nvim
|
||
|
||
>
|
||
leader_guide_theme = 'leaderguide'
|
||
<
|
||
|
||
==============================================================================
|
||
LINT_ENGINE *SpaceVim-options-lint_engine*
|
||
|
||
Set the lint engine used in checkers layer, the default engine is neomake, if
|
||
you want to use ale, use:
|
||
>
|
||
lint_engine = 'ale'
|
||
<
|
||
NOTE: the `enable_neomake` and `enable_ale` option has been deprecated.
|
||
*spacevim-options-enable_naomake* *spacevim-options-enable_ale*
|
||
|
||
==============================================================================
|
||
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
|
||
<
|
||
NOTE: the `lint_on_the_fly` option has been deprecated. Please use layer
|
||
option of |SpaceVim-layers-checkers| layer.
|
||
|
||
==============================================================================
|
||
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 `$data_dir/vimfiles`.
|
||
>
|
||
plugin_bundle_dir = "~/.cache/vimplugs"
|
||
<
|
||
|
||
==============================================================================
|
||
PLUGIN_MANAGER_PROCESSES *SpaceVim-options-plugin_manager_processes*
|
||
|
||
Set the max process of SpaceVim plugin manager
|
||
|
||
==============================================================================
|
||
PROJECT_AUTO_ROOT *SpaceVim-options-project_auto_root*
|
||
|
||
Enable/Disable project root detection. By default, SpaceVim will change the
|
||
directory to the project root directory based on `project_rooter_patterns`
|
||
option. To disable this feature:
|
||
>
|
||
[options]
|
||
project_auto_root = false
|
||
<
|
||
NOTE: *g:spacevim_project_rooter_automatically* and
|
||
*SpaceVim-options-project_rooter_automatically* are deprecated.
|
||
|
||
==============================================================================
|
||
PROJECT_NON_ROOT *SpaceVim-options-project_non_root*
|
||
|
||
This option set the default behavior for non-project files.
|
||
`current`: change to file's dir, like `autochdir`
|
||
`''`: do not change directory
|
||
`home`: change to home directory
|
||
|
||
==============================================================================
|
||
PROJECT_ROOTER_OUTERMOST *SpaceVim-options-project_rooter_outermost*
|
||
|
||
Enable/Disable finding outermost directory for project root detection. By
|
||
default SpaceVim will find the outermost directory based on
|
||
`project_rooter_patterns`. To find nearest directory, you need to disable this
|
||
option:
|
||
>
|
||
[options]
|
||
project_rooter_outermost = false
|
||
<
|
||
|
||
==============================================================================
|
||
PROJECT_ROOTER_PATTERNS *SpaceVim-options-project_rooter_patterns*
|
||
|
||
Set the project root patterns, SpaceVim determines the root directory of the
|
||
project based on this option. By default it is:
|
||
>
|
||
['.git/', '_darcs/', '.hg/', '.bzr/', '.svn/']
|
||
<
|
||
|
||
==============================================================================
|
||
PROJECTS_CACHE_NUM *SpaceVim-options-projects_cache_num*
|
||
|
||
Setting the numbers of cached projects, by default it is 20.
|
||
|
||
==============================================================================
|
||
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
|
||
<
|
||
|
||
==============================================================================
|
||
RETRY_CNT *SpaceVim-options-retry_cnt*
|
||
|
||
Set the number of retries for SpaceVim Update when failed. Default is 3. Set
|
||
to 0 to disable this feature, or you can set to another number.
|
||
>
|
||
update_retry_cnt = 3
|
||
<
|
||
|
||
==============================================================================
|
||
SEARCH_TOOLS *SpaceVim-options-search_tools*
|
||
|
||
Default search tools supported by flygrep. The default order is ['rg', 'ag',
|
||
'pt', 'ack', 'grep', 'findstr', 'git'] The `git` command means using
|
||
`git-grep`. If you prefer to use `git-grep` by default. You can change this
|
||
option to:
|
||
>
|
||
[options]
|
||
search_tools = ['git', 'rg', 'ag']
|
||
<
|
||
|
||
==============================================================================
|
||
SIDEBAR_WIDTH *SpaceVim-options-sidebar_width*
|
||
|
||
Set the width of the SpaceVim sidebar. Default is 30. This value will be used
|
||
by tagbar and filetree.
|
||
|
||
==============================================================================
|
||
SNIPPET_ENGINE *SpaceVim-options-snippet_engine*
|
||
|
||
Set the snippet engine of SpaceVim, default is neosnippet. to enable
|
||
ultisnips:
|
||
>
|
||
snippet_engine = "ultisnips"
|
||
<
|
||
|
||
==============================================================================
|
||
SRC_ROOT *SpaceVim-options-src_root*
|
||
|
||
set default sources root of all your projects. default is `E:\sources\`.
|
||
>
|
||
src_root = 'E:\sources\'
|
||
<
|
||
|
||
==============================================================================
|
||
STATUSLINE_ISEPARATOR *SpaceVim-options-statusline_iseparator*
|
||
|
||
Set the statusline separators of statusline in inactive windows, default is
|
||
'nil'
|
||
>
|
||
Separators options:
|
||
1. arrow
|
||
2. curve
|
||
3. slant
|
||
4. nil
|
||
5. fire
|
||
<
|
||
|
||
See more details in: http://spacevim.org/documentation/#statusline
|
||
|
||
|
||
==============================================================================
|
||
STATUSLINE_LEFT *SpaceVim-options-statusline_left*
|
||
|
||
Define the left section of statusline in active windows. By default:
|
||
>
|
||
statusline_left = [
|
||
'winnr',
|
||
'filename',
|
||
'major mode',
|
||
'minor mode lighters',
|
||
'version control info'
|
||
]
|
||
<
|
||
`statusline_left_sections` is deprecated, use `statusline_left` instead.
|
||
|
||
==============================================================================
|
||
STATUSLINE_RIGHT *SpaceVim-options-statusline_right*
|
||
|
||
Define the right section of statusline in active windows. By default:
|
||
>
|
||
statusline_right = [
|
||
'fileformat',
|
||
'cursorpos',
|
||
'percentage'
|
||
]
|
||
<
|
||
|
||
The following sections can be used in this option:
|
||
fileformat: the format of current file
|
||
cursorpos: the corsur position
|
||
percentage: the percent of current page
|
||
totallines: the total lines of current buffer
|
||
|
||
`statusline_right_sections` is deprecated, use `statusline_right` instead.
|
||
|
||
==============================================================================
|
||
STATUSLINE_SEPARATOR *SpaceVim-options-statusline_separator*
|
||
|
||
Set the statusline separators of statusline, default is 'nil'
|
||
>
|
||
Separators options:
|
||
1. arrow
|
||
2. curve
|
||
3. slant
|
||
4. nil
|
||
5. fire
|
||
<
|
||
|
||
See more details in: http://spacevim.org/documentation/#statusline
|
||
|
||
|
||
==============================================================================
|
||
STATUSLINE_UNICODE *SpaceVim-options-statusline_unicode*
|
||
|
||
Enable/Disable unicode symbols in statusline, includes the mode icons and
|
||
fileformat icons. This option is enabled by default, to disable it:
|
||
>
|
||
statusline_unicode = false
|
||
<
|
||
|
||
==============================================================================
|
||
TERMINAL_CURSOR_SHAPE *SpaceVim-options-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'
|
||
<
|
||
|
||
==============================================================================
|
||
TODO_CLOSE_LIST *SpaceVim-options-close_list*
|
||
|
||
Option for setting todo windows behavior when open item in todo list. Default
|
||
is `true`, set to `false` will not close todo windows.
|
||
|
||
==============================================================================
|
||
TODO_LABELS *SpaceVim-options-todo_labels*
|
||
|
||
Option for setting todo labels in current project.
|
||
|
||
==============================================================================
|
||
TODO_PREFIX *SpaceVim-options-todo_prefix*
|
||
|
||
Option for setting todo prefix in current project. The default is `@`
|
||
|
||
==============================================================================
|
||
VIM_HELP_LANGUAGE *SpaceVim-options-vim_help_language*
|
||
|
||
Set the help language of vim. Default is 'en'. You can change it to Chinese.
|
||
>
|
||
vim_help_language = "cn"
|
||
<
|
||
|
||
==============================================================================
|
||
VIMCOMPATIBLE *SpaceVim-options-vimcompatible*
|
||
|
||
Enable/Disable vimcompatible mode, by default it is false. to enable
|
||
vimcompatible mode, just add:
|
||
>
|
||
vimcompatible = true
|
||
<
|
||
In vimcompatible mode all vim origin key bindings will not be changed.
|
||
|
||
Includes:
|
||
>
|
||
q smart quit windows
|
||
s windows key bindings leader
|
||
, language specific leader
|
||
<C-a> move cursor to beginning in command line mode
|
||
<C-b> move cursor to left in command line mode
|
||
<C-f> move cursor to right in command line mode
|
||
<C-x> switch buffer
|
||
<
|
||
|
||
==============================================================================
|
||
WARNING_SYMBOL *SpaceVim-options-warning_symbol*
|
||
|
||
Set the warning symbol for SpaceVim's syntax maker. Default is '⚠'.
|
||
>
|
||
warning_symbol = '!'
|
||
<
|
||
|
||
==============================================================================
|
||
WILDIGNORE *SpaceVim-options-wildignore*
|
||
|
||
A list of file patterns when file match it will be ignored.
|
||
>
|
||
wildignore = '*/tmp/*,*.so,*.swp,*.zip,*.class,tags,*.jpg,*.ttf,*.TTF,*.png
|
||
,*/target/*,.git,.svn,.hg,.DS_Store,*.svg'
|
||
<
|
||
|
||
==============================================================================
|
||
WINDISK_ENCODING *SpaceVim-options-windisk_encoding*
|
||
|
||
Setting the encoding of windisk info. by default it is `cp936`.
|
||
>
|
||
windisk_encoding = 'cp936'
|
||
<
|
||
|
||
==============================================================================
|
||
WINDOWS_INDEX_TYPE *SpaceVim-options-windows_index_type*
|
||
|
||
Set SpaceVim windows index type, default is 3.
|
||
>
|
||
# types:
|
||
# 0: 1 ➛ ➊
|
||
# 1: 1 ➛ ➀
|
||
# 2: 1 ➛ ⓵
|
||
# 3: 1 ➛ 1
|
||
windows_index_type = 1
|
||
<
|
||
|
||
==============================================================================
|
||
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 = ""
|
||
<
|
||
|
||
==============================================================================
|
||
WINDOWS_SMARTCLOSE *SpaceVim-options-windows_smartclose*
|
||
|
||
Set the default key for smart close windows, default is `q`. to disable this
|
||
feature, just set it to empty string:
|
||
>
|
||
windows_smartclose = ""
|
||
<
|
||
|
||
==============================================================================
|
||
CONFIGURATION *SpaceVim-config*
|
||
|
||
If you still want to use `~/.SpaceVim.d/init.vim` as configuration file,
|
||
please take a look at the following options add |SpaceVim-functions|
|
||
|
||
*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_enable_list_mode*
|
||
Enable/Disable list mode, by default it is disabled.
|
||
|
||
*g:spacevim_relativenumber*
|
||
Enable/Disable relativenumber in current windows, by default it is enabled.
|
||
|
||
*g:spacevim_wrap_line*
|
||
Enable/Disable line wrap of vim
|
||
|
||
*g:spacevim_enable_bepo_layout*
|
||
Enable/Disable bepo layout, by default it is disabled.
|
||
|
||
*g:spacevim_max_column*
|
||
Change the max number of columns for SpaceVim. Default is 120.
|
||
>
|
||
let g:spacevim_max_column = 120
|
||
<
|
||
|
||
*g:spacevim_default_custom_leader*
|
||
Change the default custom leader of SpaceVim. Default is <Space>.
|
||
>
|
||
let g:spacevim_default_custom_leader = '<Space>'
|
||
<
|
||
|
||
*g:spacevim_home_files_number*
|
||
Change the list number of files for SpaceVim home. Default is 6.
|
||
>
|
||
let g:spacevim_home_files_number = 6
|
||
<
|
||
|
||
*g:spacevim_code_runner_focus*
|
||
enable/disable code runner window focus mode, by default this option is 0, to
|
||
enable this mode, set this option to 1.
|
||
|
||
*g:spacevim_enable_guicolors*
|
||
Enable true color support in terminal. Default is 0.
|
||
>
|
||
let g:spacevim_enable_guicolors = 1
|
||
<
|
||
|
||
*g:spacevim_escape_key_binding*
|
||
Set the key binding for switch to normal mode in insert mode. Default is `jk`,
|
||
to disable this key binding, set this option to empty string.
|
||
>
|
||
let g:spacevim_escape_key_binding = 'jk'
|
||
<
|
||
|
||
*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_data_dir*
|
||
Set the cache directory of SpaceVim. Default is `$XDG_CACHE_HOME` or if not
|
||
set `~/.cache¸.
|
||
>
|
||
let g:spacevim_data_dir = '~/.cache'
|
||
<
|
||
|
||
*g:spacevim_plugin_bundle_dir*
|
||
Set the cache directory of plugins. Default is `$data_dir/vimfiles`.
|
||
>
|
||
let g:spacevim_plugin_bundle_dir = g:spacevim_data_dir.'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_leader_guide_theme*
|
||
Enable/Disable realtime leader guide. Default is true. to disable it: Set the
|
||
key mapping guide theme, the default theme is `leaderguide`.
|
||
|
||
available themes:
|
||
|
||
`leaderguide`: same as LeaderGuide.vim
|
||
|
||
`whichkey`: same as which-key.nvim
|
||
|
||
>
|
||
let g:spacevim_leader_guide_theme = 'leaderguide'
|
||
<
|
||
|
||
*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('nvim-0.9.0')
|
||
let g:spacevim_autocomplete_method = 'nvim-cmp'
|
||
elseif 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
|
||
<
|
||
|
||
and you can alse set this option to coc, then coc.nvim will be used.
|
||
|
||
*g:spacevim_lint_engine*
|
||
Set the lint engine used in checkers layer, the default engine is neomake, if
|
||
you want to use ale, use:
|
||
>
|
||
let g:spacevim_lint_engine = 'ale'
|
||
<
|
||
|
||
*g:spacevim_guifont*
|
||
Set the guifont of SpaceVim. Default is empty.
|
||
>
|
||
let g:spacevim_guifont = "SauceCodePro Nerd Font Mono:h11"
|
||
<
|
||
|
||
*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 filetree.
|
||
|
||
*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 'nil'
|
||
>
|
||
Separators options:
|
||
1. arrow
|
||
2. curve
|
||
3. slant
|
||
4. nil
|
||
5. fire
|
||
<
|
||
|
||
See more details in: http://spacevim.org/documentation/#statusline
|
||
|
||
|
||
*g:spacevim_statusline_iseparator*
|
||
Set the statusline separators of statusline in inactive windows, default is
|
||
'nil'
|
||
>
|
||
Separators options:
|
||
1. arrow
|
||
2. curve
|
||
3. slant
|
||
4. nil
|
||
5. fire
|
||
<
|
||
|
||
See more details in: http://spacevim.org/documentation/#statusline
|
||
|
||
|
||
*g:spacevim_enable_statusline_bfpath*
|
||
Enable/Disable showing full path of current buffer on statusline, disabled by
|
||
default, to enable this feature:
|
||
>
|
||
enable_statusline_bfpath = true
|
||
<
|
||
|
||
*g:spacevim_enable_statusline_tag*
|
||
Enable/Disable showing current tag on statusline
|
||
|
||
*g:spacevim_statusline_left*
|
||
Define the left section of statusline in active windows. By default:
|
||
>
|
||
let g:spacevim_statusline_left =
|
||
\ [
|
||
\ 'winnr',
|
||
\ 'filename',
|
||
\ 'major mode',
|
||
\ 'minor mode lighters',
|
||
\ 'version control info'
|
||
\ ]
|
||
<
|
||
`g:spacevim_statusline_left_sections` is deprecated, use
|
||
`g:spacevim_statusline_left` instead.
|
||
|
||
*g:spacevim_statusline_right*
|
||
Define the right section of statusline in active windows. By default:
|
||
>
|
||
g:spacevim_statusline_right =
|
||
\ [
|
||
\ 'fileformat',
|
||
\ 'cursorpos',
|
||
\ 'percentage'
|
||
\ ]
|
||
<
|
||
|
||
`g:spacevim_statusline_right_sections` is deprecated, use
|
||
`g:spacevim_statusline_right` instead.
|
||
|
||
*g:spacevim_statusline_unicode*
|
||
Enable/Disable unicode symbols in statusline, includes the mode icons and
|
||
fileformat icons. This option is enabled by default, to disable it:
|
||
>
|
||
let g:spacevim_statusline_unicode = 0
|
||
<
|
||
|
||
*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_filemanager*
|
||
The default file manager of SpaceVim. Default is 'nerdtree'. you can also use
|
||
defx or vimfiler
|
||
|
||
*g:spacevim_filetree_direction*
|
||
Config the direction of file tree. Default is 'right'. you can also set to
|
||
'left'.
|
||
|
||
NOTE: if it is 'left', the tagbar will be move to right.
|
||
|
||
*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 false. to enable
|
||
vimcompatible mode, just add:
|
||
>
|
||
let g:spacevim_vimcompatible = 1
|
||
<
|
||
In vimcompatible mode all vim origin key bindings will not be changed.
|
||
|
||
Includes:
|
||
>
|
||
q smart quit windows
|
||
s windows key bindings leader
|
||
, language specific leader
|
||
<C-a> move cursor to beginning in command line mode
|
||
<C-b> move cursor to left in command line mode
|
||
<C-f> move cursor to right in command line mode
|
||
<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 4.
|
||
>
|
||
" 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 3.
|
||
>
|
||
" types:
|
||
" 0: 1 ➛ ➊
|
||
" 1: 1 ➛ ➀
|
||
" 2: 1 ➛ ⓵
|
||
" 3: 1 ➛ 1
|
||
let g:spacevim_windows_index_type = 1
|
||
<
|
||
|
||
*g:spacevim_enable_tabline_ft_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
|
||
<
|
||
NOTE: the `lint_on_save` option has been deprecated. Please use layer option
|
||
of |SpaceVim-layers-checkers| layer.
|
||
|
||
*g:spacevim_search_tools*
|
||
Default search tools supported by flygrep. The default order is ['rg', 'ag',
|
||
'pt', 'ack', 'grep', 'findstr', 'git']
|
||
|
||
*g:spacevim_project_rooter_patterns*
|
||
Set the project root patterns, SpaceVim determines the root directory of the
|
||
project based on this option. By default it is:
|
||
>
|
||
['.git/', '_darcs/', '.hg/', '.bzr/', '.svn/']
|
||
<
|
||
|
||
*g:spacevim_enable_projects_cache*
|
||
Enable/Disable cross session projects cache. Enabled by default.
|
||
|
||
*g:spacevim_projects_cache_num*
|
||
Setting the numbers of cached projects, by default it is 20.
|
||
|
||
*g:spacevim_project_auto_root*
|
||
Enable/Disable changing directory automatically. Enabled by default.
|
||
|
||
*g:spacevim_project_rooter_outermost*
|
||
Enable/Disable finding outermost directory for project root detection. By
|
||
default SpaceVim will find the outermost directory based on
|
||
`project_rooter_patterns`. To find nearest directory, you need to disable this
|
||
option:
|
||
>
|
||
let g:spacevim_project_rooter_outermost = 0
|
||
<
|
||
|
||
*g:spacevim_commandline_prompt*
|
||
Config the command line prompt for flygrep and denite etc.
|
||
|
||
*g:spacevim_todo_labels*
|
||
Option for setting todo labels in current project.
|
||
|
||
*g:spacevim_todo_close_list*
|
||
Option for setting todo windows behavior when open item in todo list. Default
|
||
is 1, set to 0 will not close todo windows.
|
||
|
||
*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_update_retry_cnt*
|
||
Set the number of retries for SpaceVim Update when failed. Default is 3. Set
|
||
to 0 to disable this feature, or you can set to another number.
|
||
>
|
||
let g:spacevim_update_retry_cnt = 3
|
||
<
|
||
|
||
*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_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:github_issues_no_omni*
|
||
jaxbot/github-issues.vim {{{ Disable completion by github-issues.vim. Because
|
||
github-complete.vim provides more powerful completion.
|
||
|
||
*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.
|
||
|
||
:OpenProject *:OpenProject*
|
||
Open specific project in |SpaceVim-options-src_root|
|
||
|
||
:A[!] {type} *:A*
|
||
Switch to alternate file based on {type}. for more info about alternate file
|
||
configuration, checkout |SpaceVim-plugins-alternate|
|
||
|
||
==============================================================================
|
||
PUBLIC FUNCTIONS *SpaceVim-functions*
|
||
|
||
All of these functions can be used in `~/.SpaceVim.d/init.vim` and bootstrap
|
||
functions.
|
||
|
||
SpaceVim#api#import({name}) *SpaceVim#api#import()*
|
||
Import API base the given {name}, and return the API object. for all
|
||
available APIs please check |spacevim-api|
|
||
|
||
SpaceVim#api#register({name}, {api}) *SpaceVim#api#register()*
|
||
Register new {api} named {name}, 1 will be returned if succeed. for all
|
||
available APIs please check |spacevim-api|
|
||
|
||
Example:
|
||
>
|
||
let s:hello = {}
|
||
function! s:hello.say(who)
|
||
echo 'hello! ' . a:who
|
||
endfunction
|
||
call SpaceVim#api#register('hello', s:hello)
|
||
|
||
" after registering api, you can use this api
|
||
" in other vim scripts like this:
|
||
let s:H = SpaceVim#api#import('hello')
|
||
call s:H.say('wsdjeg')
|
||
<
|
||
|
||
SpaceVim#custom#SPC({m}, {keys}, {cmd}, {desc}, {is_cmd})
|
||
*SpaceVim#custom#SPC()*
|
||
The first parameter sets the type of shortcut key, which can be `nnoremap`
|
||
or `nmap`, the second parameter is a list of keys, and the third parameter
|
||
is an ex command or key binding, depending on whether the last parameter is
|
||
true. The fourth parameter is a short description of this custom key
|
||
binding.
|
||
|
||
SpaceVim#custom#SPCGroupName({keys}, {name}) *SpaceVim#custom#SPCGroupName()*
|
||
Set the group name of custom SPC key bindings.
|
||
|
||
SpaceVim#custom#leader({type}, {key}, {value}) *SpaceVim#custom#leader()*
|
||
function for adding custom leader key bindings
|
||
|
||
SpaceVim#custom#LeaderGroupName({keys}, {name})
|
||
*SpaceVim#custom#LeaderGroupName()*
|
||
Set the group name of custom Leader key bindings.
|
||
|
||
SpaceVim#custom#LangSPC({ft}, {m}, {keys}, {cmd}, {desc}, {is_cmd})
|
||
*SpaceVim#custom#LangSPC()*
|
||
This function offers user a way to add custom language specific key
|
||
bindings.
|
||
|
||
SpaceVim#custom#LangSPCGroupName({ft}, {keys}, {name})
|
||
*SpaceVim#custom#LangSPCGroupName()*
|
||
Set the group name of custom language specific key bindings.
|
||
|
||
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. For example:
|
||
>
|
||
call SpaceVim#layers#load('autocomplete',
|
||
\ {
|
||
\ 'auto_completion_delay' : 50,
|
||
\ }
|
||
\ )
|
||
<
|
||
|
||
SpaceVim#logger#info({msg}) *SpaceVim#logger#info()*
|
||
write message to SpaceVim runtime log with `info` level.
|
||
|
||
SpaceVim#logger#warn({msg}) *SpaceVim#logger#warn()*
|
||
write warning {msg} to spacevim runtime log. The `msg` must be string. the
|
||
second argument is optional, It can a boolean or `0/1`. By default, the
|
||
warning message will not be printed, if the second argument is given, and is
|
||
`0` or false, the warning msg will be printed to screen.
|
||
|
||
SpaceVim#logger#error({msg}) *SpaceVim#logger#error()*
|
||
write error message to spacevim runtime log.
|
||
|
||
SpaceVim#logger#debug({msg}) *SpaceVim#logger#debug()*
|
||
write debug message to spacevim runtime log.
|
||
|
||
SpaceVim#logger#viewRuntimeLog() *SpaceVim#logger#viewRuntimeLog()*
|
||
This a a function to view the spacevim runtime log. same as |:SPRuntimeLog|
|
||
and `SPC h L`
|
||
|
||
SpaceVim#logger#viewLog() *SpaceVim#logger#viewLog()*
|
||
Print the debug information of spacevim, same as |:SPDebugInfo|
|
||
|
||
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()*
|
||
change the output file of spacevim runtime logger. default is empty string.
|
||
|
||
SpaceVim#logger#derive({name}) *SpaceVim#logger#derive()*
|
||
Derive a new logger based on SpaceVim's runtime logger. The new logger
|
||
provides following functions:
|
||
1. info(msg): like |SpaceVim#logger#info|, but include the derive name.
|
||
2. warn(msg): like |SpaceVim#logger#warn|
|
||
3. error(msg): like |SpaceVim#logger#error|
|
||
4. debug(msg): write debug message run SpaceVim runtime log
|
||
5. start_debug(): enable debug mode of derived logger.
|
||
6. stop_debug(): stop debug mode of derived logger.
|
||
7. debug_enabled(): return true or false.
|
||
|
||
This function can be used in vim script and lua.
|
||
|
||
Vim script Example:
|
||
>
|
||
let s:LOGGER = SpaceVim#logger#derive('myplug')
|
||
|
||
call s:LOGGER.info('hello world')
|
||
<
|
||
|
||
Lua Example:
|
||
>
|
||
local log = require('spacevim.logger').derive('myplug')
|
||
|
||
log.info('hello world')
|
||
<
|
||
|
||
The this info message will be write to SpaceVim's runtime log:
|
||
>
|
||
[ myplug ] [00:02:54:051] [ Info ] hello world
|
||
<
|
||
|
||
SpaceVim#plugins#iedit#start([options], [firstline], [lastline])
|
||
*SpaceVim#plugins#iedit#start()*
|
||
This is public function to evoke iedit with [options]. The default
|
||
[firstline] is 1, and the default [lastline] is `line('$')`. The following
|
||
key are supported in [options]:
|
||
>
|
||
KEY:
|
||
expr match expression
|
||
word match word
|
||
stack cursor pos stack
|
||
selectall boolean
|
||
<
|
||
if only argv 1 is given, use selected word as pattern
|
||
|
||
==============================================================================
|
||
LAYERS *SpaceVim-layers*
|
||
|
||
Layers help collecting related packages together to provides features. This
|
||
approach helps keep configuration organized and reduces overhead for the user
|
||
by keeping them from having to think about what packages to install.
|
||
|
||
ENABLE LAYERS
|
||
|
||
By default SpaceVim enables these layers:
|
||
|
||
1. `autocomplete`
|
||
2. `checkers`
|
||
3. `format`
|
||
4. `edit`
|
||
5. `ui`
|
||
5. `core`
|
||
6. `core#banner`
|
||
7. `core#statusline`
|
||
8. `core#tabline`
|
||
|
||
To enable a specific layer you need to edit SpaceVim's custom configuration
|
||
files. The key binding for opening the configuration files.s `SPC f v d`.
|
||
|
||
The following example shows how to load `shell` layer with some specified
|
||
options:
|
||
>
|
||
[[layers]]
|
||
name = 'shell'
|
||
default_position = 'top'
|
||
default_height = 30
|
||
<
|
||
|
||
DISABLE LAYERS
|
||
|
||
Some layers are enabled by default. The following example shows how to disable
|
||
`shell` layer:
|
||
>
|
||
[[layers]]
|
||
name = 'shell'
|
||
enable = false
|
||
<
|
||
|
||
==============================================================================
|
||
CHINESE *SpaceVim-layers-chinese*
|
||
|
||
`chinese` layer provides Chinese specific function for SpaceVim. This layer is
|
||
not loaded by default, to use this layer, add following snippet into your
|
||
SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'chinese'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC l c check with ChineseLinter
|
||
SPC x g t translate current word
|
||
SPC n c d convert chinese number to digit
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
VERSIONCONTROL *SpaceVim-layers-VersionControl*
|
||
|
||
This layer provides version control system (VCS) integration for SpaceVim.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC t m v toggle version control info
|
||
SPC t m h toggle hunks summary
|
||
SPC g . version control transient state
|
||
<
|
||
|
||
==============================================================================
|
||
AUTOCOMPLETE *SpaceVim-layers-autocomplete*
|
||
|
||
This layer provides auto-completion in SpaceVim. This layer is enabled by
|
||
default. To disable this layer, add following snippet to your configuration
|
||
file:
|
||
>
|
||
[[layers]]
|
||
name = "autocomplete"
|
||
enable = false
|
||
<
|
||
|
||
The following completion engines are supported:
|
||
|
||
1. nvim-cmp - neovim >= 0.9.0
|
||
2. neocomplete - vim with `+lua`
|
||
3. neocomplcache - vim without `+lua`
|
||
4. deoplete - neovim with `+python3`
|
||
5. coc - vim >= 8.1 or neovim >= 0.3.1
|
||
6. YouCompleteMe - disabled by default, to enable ycm, see
|
||
|SpaceVim-options-enable_ycm|
|
||
7. Completor - vim8 with `+python` or `+python3`
|
||
8. asyncomplete - vim8 or neovim with `timers`
|
||
|
||
Snippets are supported via
|
||
neosnippet(https://github.com/Shougo/neosnippet.vim).
|
||
|
||
COMPLETION ENGINE
|
||
|
||
By default, SpaceVim will choose the completion engine automatically based on
|
||
your vim version. But you can choose the completion engine to be used with the
|
||
following variable:
|
||
|
||
`autocomplete_method`: the possible values are:
|
||
`ycm`: for YouCompleteMe
|
||
`neocomplcache`
|
||
`coc`: coc.nvim which also provides language server protocol feature
|
||
`deoplete`
|
||
`asyncomplete`
|
||
`completor`
|
||
`nvim-cmp`
|
||
|
||
here is an example:
|
||
>
|
||
[options]
|
||
autocomplete_method = "deoplete"
|
||
<
|
||
|
||
SNIPPETS ENGINE
|
||
|
||
The default snippets engine is `neosnippet`, the also can be changed to
|
||
`ultisnips`:
|
||
>
|
||
[options]
|
||
snippet_engine = "ultisnips"
|
||
<
|
||
|
||
The following snippets repos have been added by default:
|
||
|
||
Shougo/neosnippet-snippets: neosnippet's default snippets.
|
||
honza/vim-snippets: extra snippets
|
||
|
||
If the `snippet_engine` is `neosnippet`, the following directories will be
|
||
used:
|
||
|
||
`~/.SpaceVim/snippets/`: SpaceVim runtime snippets.
|
||
`~/.SpaceVim.d/snippets/`: custom global snippets.
|
||
`./.SpaceVim.d/snippets/`: custom local snippets (project's snippets)
|
||
|
||
You can provide additional directories by setting the variable
|
||
`g:neosnippet#snippets_directory` which can take a string in case of a single
|
||
path or a list of paths.
|
||
|
||
If the `snippet_engine` is `ultisnips`, the following directories will be
|
||
used:
|
||
|
||
`~/.SpaceVim/UltiSnips/`: SpaceVim runtime snippets.
|
||
`~/.SpaceVim.d/UltiSnips/`: custom global snippets.
|
||
`./.SpaceVim.d/UltiSnips/`: custom local snippets (project's snippets)
|
||
|
||
COMPLETE PARENS
|
||
|
||
By default, the parens will be completed automatically, to disabled this
|
||
feature:
|
||
>
|
||
[options]
|
||
autocomplete_parens = false
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
You can customize the user experience of autocompletion with the following
|
||
layer options:
|
||
|
||
`auto_completion_return_key_behavior`: set the action to perform when the
|
||
<Enter> key is pressed. the possible values are:
|
||
1. `complete` completes with the current selection
|
||
2. `smart` completes with current selection and expand snippet or argvs
|
||
3. `nil`
|
||
By default it is `complete`.
|
||
|
||
`auto_completion_tab_key_behavior`: set the action to perform when the <Tab>
|
||
key is pressed, the possible values are:
|
||
1. `smart` cycle candidates, expand snippets, jump parameters
|
||
2. `complete` completes with the current selection
|
||
3. `cycle` completes the common prefix and cycle between candidates
|
||
4. `nil` insert a carriage return
|
||
By default it is `complete`.
|
||
|
||
`auto_completion_delay`: a number to delay the completion after input in
|
||
milliseconds, by default it is 50 ms.
|
||
|
||
`auto_completion_complete_with_key_sequence`: a string of two characters
|
||
denoting a key sequence that will perform a `complete` action if the sequence
|
||
as been entered quickly enough. If its value is `nil` then the feature is
|
||
disabled.
|
||
|
||
NOTE: This option should not has same value as `escape_key_binding`
|
||
|
||
`auto_completion_complete_with_key_sequence_delay`: the number of seconds to
|
||
wait for the autocompletion key sequence to be entered. The default value is 1
|
||
seconds. This option is used for vim's `timeoutlen` option in insert mode.
|
||
|
||
The default configuration of the layer is:
|
||
>
|
||
[[layers]]
|
||
name = "autocomplete"
|
||
auto_completion_return_key_behavior = "nil"
|
||
auto_completion_tab_key_behavior = "smart"
|
||
auto_completion_delay = 200
|
||
auto_completion_complete_with_key_sequence = "nil"
|
||
auto_completion_complete_with_key_sequence_delay = 0.1
|
||
<
|
||
|
||
`jk` is a good candidate for `auto_completion_complete_with_key_sequence` if
|
||
you don’t use it already.
|
||
|
||
SHOW SNIPPETS IN AUTO-COMPLETION POPUP
|
||
|
||
By default, snippets are shown in the auto-completion popup. To disable this
|
||
feature, set the variable `auto_completion_enable_snippets_in_popup` to false.
|
||
>
|
||
[[layers]]
|
||
name = "autocomplete"
|
||
auto_completion_enable_snippets_in_popup = false
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
code completion:
|
||
>
|
||
Key bindings | Description
|
||
------------ | -----------------------------------------------
|
||
Ctrl-n | select next candidate
|
||
Ctrl-p | select previous candidate
|
||
<Tab> | based on auto_completion_tab_key_behavior
|
||
Shift-Tab | select previous candidate
|
||
<Return> | based on auto_completion_return_key_behavior
|
||
<
|
||
snippets:
|
||
>
|
||
Key Binding | Description
|
||
-------------- | ----------------------------------------
|
||
M-/ | Expand a snippet
|
||
SPC i s | List all current snippets for inserting
|
||
<Leader> f s | Fuzzy find snippets
|
||
<
|
||
NOTE: `SPC i s` requires that at least one fuzzy search layer be loaded. If
|
||
the `snippet_engine` is `neosnippet`. The fuzzy finder layer can be `leaderf`,
|
||
`denite` or `unite`. For `ultisnips`, you can use `leaderf` or `unite` layer.
|
||
|
||
==============================================================================
|
||
CHAT *SpaceVim-layers-chat*
|
||
|
||
The `chat` layer provides basic function to connected to chat server.
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `chat_port`: set the port of chat server
|
||
2. `chat_address`: set the ip of chat server
|
||
3. `chat_client_jar`: set the path of client jar
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Bingding Description
|
||
SPC a h open chat window
|
||
<
|
||
|
||
==============================================================================
|
||
CHECKERS *SpaceVim-layers-checkers*
|
||
|
||
The `checkers` layer provides syntax lint feature. The default lint engine is
|
||
|neomake|, this can be changed by `lint_engine` option:
|
||
>
|
||
[options]
|
||
lint_engine = 'ale'
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
`lint_on_the_fly`: Syntax checking on the fly feature, disabled by default.
|
||
`lint_on_save`: Run syntax checking when saving a file.
|
||
`show_cursor_error`: Enable/Disable displaying error below current line.
|
||
`lint_exclude_filetype`: Set the filetypes which does not enable syntax
|
||
checking.
|
||
`open_error_list`: Open the language checking windows. when set to 0, the
|
||
windows will not be opened automatically. Defaults to 2.
|
||
|
||
==============================================================================
|
||
COLORSCHEME *SpaceVim-layers-colorscheme*
|
||
|
||
The default colorscheme of SpaceVim is gruvbox. It can be changed via
|
||
`colorscheme` option by adding the following code to |SpaceVim-options| file:
|
||
>
|
||
<
|
||
[options] 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.
|
||
>
|
||
| Name | dark | light | term | gui | statusline |
|
||
| ------------ | ---- | ----- | ---- | --- | ---------- |
|
||
| molokai | yes | no | yes | yes | yes |
|
||
| srcery | yes | no | yes | yes | yes |
|
||
| onedark | yes | no | yes | yes | yes |
|
||
| jellybeans | yes | no | yes | yes | yes |
|
||
| palenight | yes | no | yes | yes | yes |
|
||
| one | yes | yes | yes | yes | yes |
|
||
| nord | yes | no | yes | yes | yes |
|
||
| gruvbox | yes | yes | yes | yes | yes |
|
||
| NeoSolarized | yes | yes | yes | yes | yes |
|
||
| hybrid | yes | yes | yes | yes | yes |
|
||
| material | yes | yes | yes | yes | yes |
|
||
| dracula | yes | yes | yes | yes | yes |
|
||
| SpaceVim | yes | yes | yes | yes | yes |
|
||
<
|
||
Also, there's one thing which everyone should know and pay attention to. NOT
|
||
all of above 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 *SpaceVim-layers-core*
|
||
|
||
The `core` layer of SpaceVim. This layer is enabled by default, and it
|
||
provides filetree, comment key bindings etc.
|
||
|
||
OPTIONS
|
||
1. `filetree_show_hidden`: option for showing hidden file in filetree,
|
||
disabled by default.
|
||
2. `enable_smooth_scrolling`: enable/disabled smooth scrolling key bindings,
|
||
enabled by default.
|
||
3. `enable_filetree_gitstatus`: enable/disable git status column in
|
||
filetree.
|
||
4. `enable_filetree_filetypeicon`: enable/disable filetype icons in
|
||
filetree.
|
||
5. `enable_netrw`: enable/disable netrw, disabled by default.
|
||
|
||
NOTE: the `enable_vimfiler_gitstatus` and `enable_filetree_gitstatus` option
|
||
has been deprecated. Use layer option instead.
|
||
*spacevim-options-enable_vimfiler_gitstatus*
|
||
*spacevim-options-enable_filetree_gitstatus*
|
||
*g:spacevim_enable_vimfiler_gitstatus* *g:spacevim_enable_filetree_gitstatus*
|
||
*g:spacevim_enable_vimfiler_filetypeicon*
|
||
|
||
==============================================================================
|
||
CORE#STATUSCOLUMN *SpaceVim-layers-core-statuscolumn*
|
||
|
||
This layer provides a simple statuscolumn for SpaceVim and is disabled by
|
||
default.
|
||
|
||
To enable this layer, add following section to your configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'core#statuscolumn'
|
||
enable = true
|
||
<
|
||
|
||
==============================================================================
|
||
CORE#STATUSLINE *SpaceVim-layers-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
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
`major_mode_cache`: Enable/disable major mode cache, enabled by default.
|
||
|
||
==============================================================================
|
||
CORE#TABLINE *SpaceVim-layers-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
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
1. `enable_default_mappings`: Enable/disable default key bindings. This is
|
||
enabled by default.
|
||
|
||
KEY BINDINGS
|
||
|
||
The following two key bindings require neovim v0.10.0+.
|
||
>
|
||
Key binding | Description
|
||
----------------- | -----------------------------------------------
|
||
Ctrl-Shift-Right | Move current tabpage to the right
|
||
Ctrl-Shift-Left | Move current tabpage to the left
|
||
<
|
||
USE TABLINE
|
||
|
||
Buffers will be listed on the tabline if there is only one tab, each item
|
||
contains the index, buffer name and the filetype icon. If there is more than
|
||
one tab, all of them will be listed on the tabline. Each item can be quickly
|
||
accessed by using `<Leader> number`. Default `<Leader>` is `\`.
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | -----------------------------------------------
|
||
<Leader> 1 | Jump to index 1 on tabline
|
||
<Leader> 2 | Jump to index 2 on tabline
|
||
<Leader> 3 | Jump to index 3 on tabline
|
||
<Leader> 4 | Jump to index 4 on tabline
|
||
<Leader> 5 | Jump to index 5 on tabline
|
||
<Leader> 6 | Jump to index 6 on tabline
|
||
<Leader> 7 | Jump to index 7 on tabline
|
||
<Leader> 8 | Jump to index 8 on tabline
|
||
<Leader> 9 | Jump to index 9 on tabline
|
||
g r | Switch to alternate tab (switch back and forth)
|
||
<
|
||
NOTE: `SPC Tab` is the key binding for switching to alternate buffer. Read
|
||
[Buffers and Files](#buffers-and-files) section for more info.
|
||
|
||
SpaceVim tabline also supports mouse click, the left mouse button will switch
|
||
to the buffer, while the middle mouse button will delete the buffer.
|
||
|
||
NOTE: This feature is only supported in Neovim with `has('tablineat')`.
|
||
>
|
||
Key Bindings | Descriptions
|
||
---------------- | --------------------
|
||
<Mouse-left> | Switch to the buffer
|
||
<Mouse-middle> | Delete the buffer
|
||
<
|
||
TAB MANAGER
|
||
|
||
You can also use `SPC t t` to open the tab manager window.
|
||
|
||
Key bindings within the tab manager window:
|
||
>
|
||
Key Bindings | Descriptions
|
||
----------------- | -----------------------------------------
|
||
o | Close or expand tab windows.
|
||
r | Rename the tab under the cursor.
|
||
n | Create new named tab below the cursor tab
|
||
N | Create new tab below the cursor tab
|
||
x | Delete the tab
|
||
Ctrl-Shift-Up | Move tab backward
|
||
Ctrl-Shift-Down | Move tab forward
|
||
<Enter> | Switch to the window under the cursor.
|
||
<
|
||
|
||
==============================================================================
|
||
CSCOPE *SpaceVim-layers-cscope*
|
||
|
||
`cscope` layer provides |cscope| integration for SpaceVim. To load this layer:
|
||
>
|
||
[[layers]]
|
||
name = 'cscope'
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
The layer option can be used when loading the `cscope` layer, for example:
|
||
>
|
||
[[layers]]
|
||
name = 'cscope'
|
||
auto_update = true
|
||
open_quickfix = 0
|
||
<
|
||
1. `auto_update`: Enable or disable automatic updating of the cscope
|
||
database.
|
||
2. `cscope_command`: set the command or path of `cscope` executable.
|
||
3. `open_location`: enable/disable open location list after searching.
|
||
4. `preload_path`: set the proload paths.
|
||
5. `list_files_command`: set the command to list all files which should be
|
||
involed to create cscope database, By default it is:
|
||
|
||
`['rg', '--color=never', '--files']`
|
||
|
||
To specific filetypes, use custom command, for example:
|
||
>
|
||
[[layers]]
|
||
name = 'cscope'
|
||
list_files_command = ['rg', '--color=never', '--files', '--type', 'c']
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be added when this layer is loaded.
|
||
>
|
||
Key binding Description
|
||
SPC m c c find functions called by this function
|
||
SPC m c C find functions calling this function
|
||
SPC m c d find global definition of a symbol
|
||
SPC m c r find references of a symbol
|
||
SPC m c f find files
|
||
SPC m c F find files including this file
|
||
SPC m c e find this egrep pattern
|
||
SPC m c t find this text string
|
||
SPC m c = find assignments to this symbol
|
||
SPC m c u create cscope index
|
||
SPC m c i create cscope database
|
||
SPC m c l list cscope database
|
||
SPC m c m remove current cscope database
|
||
SPC m c M remove all cscope database
|
||
<
|
||
|
||
==============================================================================
|
||
CTRLP *SpaceVim-layers-ctrlp*
|
||
|
||
`ctrlp` layer provides fuzzy finder feature which is based on |ctrlp|. This
|
||
layer is not loaded by default, to use this layer, you need to add following
|
||
snippent in your configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'ctrlp'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be defined when `ctrlp` layer is loaded:
|
||
>
|
||
Key bindings | Discription
|
||
-------------------- | -----------------------------
|
||
<Leader> f <Space> | Fuzzy find menu:CustomKeyMaps
|
||
<Leader> f e | Fuzzy find register
|
||
<Leader> f h | Fuzzy find history/yank
|
||
<Leader> f j | Fuzzy find jump, change
|
||
<Leader> f l | Fuzzy find location list
|
||
<Leader> f m | Fuzzy find output messages
|
||
<Leader> f o | Fuzzy find outline
|
||
<Leader> f q | Fuzzy find quick fix
|
||
<Leader> f r | Resumes Unite window
|
||
<
|
||
|
||
==============================================================================
|
||
DEBUG *SpaceVim-layers-debug*
|
||
|
||
`debug` layer debug workflow for SpaceVim. All of the functionality is based
|
||
on vebugger or vimspector.
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `debugger_plugin`: set the debug engine. It can be `vimspector` or
|
||
`vebugger`.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC d c launch-or-continue-debugger
|
||
SPC d r restart-debugger-with-the-same-config
|
||
SPC d x run-to-cursor
|
||
SPC d p pause-debugger
|
||
SPC d b toggle-line-breakpoint
|
||
SPC d B clear-all-breakpoints
|
||
SPC d o step-over
|
||
SPC d i step-into-functions
|
||
SPC d O step-out-of-current-function
|
||
SPC d u move-up-a-frame
|
||
SPC d d move-down-a-frame
|
||
SPC d k terminate-the-debugger
|
||
SPC d e evaluate-cursor-symbol-or-selection
|
||
<
|
||
|
||
==============================================================================
|
||
EDIT *SpaceVim-layers-edit*
|
||
|
||
The `edit` layer provides basic feature for editing files. This layer is
|
||
loaded by default. To disable this layer:
|
||
>
|
||
[[layers]]
|
||
name = 'edit'
|
||
enable = false
|
||
<
|
||
CONFIGURATION
|
||
1. `autosave_timeout`: set the timeoutlen of autosave plugin. By default it
|
||
is 0. And autosave is disabled. timeoutlen must be given in millisecods and
|
||
can't be > 100*60*1000 (100 minutes) or < 1000 (1 second). For example, setup
|
||
timer with 5 minutes:
|
||
>
|
||
[[layers]]
|
||
name = 'edit'
|
||
autosave_timeout = 300000
|
||
<
|
||
2. `autosave_events`: set the events on which autosave will perform a save.
|
||
This option is an empty list by default. you can trigger saving based on vim's
|
||
events, for example:
|
||
>
|
||
[[layers]]
|
||
name = 'edit'
|
||
autosave_events = ['InsertLeave', 'TextChanged']
|
||
<
|
||
3. `autosave_all_buffers`: By default autosave plugin only save current
|
||
buffer.
|
||
If you want to save all buffers automatically. Set this option to `true`.
|
||
>
|
||
[[layers]]
|
||
name = 'edit'
|
||
autosave_all_buffers = true
|
||
<
|
||
4. `autosave_location`: set the directory where to save changed files. By
|
||
default it is empty string, that means saving to the original file. If this
|
||
option is not an empty string. files will me saved to that directory
|
||
automatically. and the format is:
|
||
>
|
||
autosave_location/path+=to+=filename.ext.backup
|
||
<
|
||
5. `enable_hop`: by default, spacevim use easymotion plugin. and if you are
|
||
using neovim 0.6.0 or above, hop.nvim will be enabled. You can disabled this
|
||
plugin and still using easymotion.
|
||
|
||
KEY BINDINGS
|
||
|
||
The `edit` layer also provides many key bindings:
|
||
>
|
||
key binding description
|
||
SPC x c count in the selection region
|
||
<
|
||
|
||
The following key binding is to jump to targets. The default plugin is
|
||
`easymotion`, and if you are using neovim 0.6.0 or above. The `hop.nvim` will
|
||
be used.
|
||
>
|
||
key binding description
|
||
SPC j j jump or select a character
|
||
SPC j J jump to suite of two characters
|
||
SPC j l jump or select to a line
|
||
SPC j w jump to a word
|
||
SPC j u jump to a url
|
||
<
|
||
|
||
==============================================================================
|
||
EXPRFOLD *SpaceVim-layers-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
|
||
<
|
||
|
||
==============================================================================
|
||
FOLDSEARCH *SpaceVim-layers-foldsearch*
|
||
|
||
`foldsearch` layer provides key bindings to searching text and fold searching
|
||
results. This layer is not enabled by default, to enable this layer, add
|
||
following code to your configuration file:
|
||
>
|
||
[[layers]]
|
||
name = 'foldsearch'
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be definded when the `foldsearch` layer is
|
||
loaded.
|
||
>
|
||
Key Binding Description
|
||
SPC F w searching with input word
|
||
SPC F W searching with cursor word
|
||
SPC F p searching with regexp
|
||
SPC F e end foldsearch
|
||
<
|
||
|
||
==============================================================================
|
||
FORMAT *SpaceVim-layers-format*
|
||
|
||
`format` layer provides code formation for SpaceVim, the default formatting
|
||
plugin is `neoformat`, and you can also use `vim-codefmt`.
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `format_on_save`: disabled by default.
|
||
2. `format_method`: set the format plugin, default plugin is `neoformat`.
|
||
You can also use `vim-codefmt` or `format.nvim`, `format.nvim` requires neovim
|
||
0.9.0+.
|
||
3. `silent_format`: Runs the formatter without any messages.
|
||
4. `format_notify_width`: set the neoformat notify window width.
|
||
5. `format_notify_timeout`: set the neoformat notify clear timeout. default
|
||
is 5000 milliseconds.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC b f format current buffer or selection lines
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
FRAMEWORK#DJANGO *SpaceVim-layers-framework-django*
|
||
|
||
The `framework#django` layer provides code completion and syntax highlight for
|
||
django. This layer is not enabled by default, to enable it:
|
||
>
|
||
[[layers]]
|
||
name = 'framework#django'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
FZF *SpaceVim-layers-fzf*
|
||
|
||
This layer provides fuzzy finder feature which is based on `fzf`. This layer
|
||
is not loaded by default. To use this layer:
|
||
>
|
||
[[layers]]
|
||
name = 'fzf'
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be enabled when this layer is loaded:
|
||
>
|
||
Key bindings Description
|
||
SPC p f / Ctrl-p search files in current directory
|
||
<Leader> f SPC Fuzzy find menu:CustomKeyMaps
|
||
<Leader> f e Fuzzy find register
|
||
<Leader> f h Fuzzy find history/yank
|
||
<Leader> f j Fuzzy find jump, change
|
||
<Leader> f l Fuzzy find location list
|
||
<Leader> f m Fuzzy find output messages
|
||
<Leader> f o Fuzzy find functions
|
||
<Leader> f t Fuzzy find tags
|
||
<Leader> f q Fuzzy find quick fix
|
||
<Leader> f p Fuzzy find bundle plugins
|
||
<
|
||
|
||
==============================================================================
|
||
GIT *SpaceVim-layers-git*
|
||
|
||
`git` layer provides git integration for SpaceVim.
|
||
|
||
LAYER OPTIONS
|
||
|
||
`git_plugin`: Set the background plugin used in `git` layer. The default value
|
||
is `git`, the following plugins are supported: `gina`, `fugitive` and `gita`.
|
||
>
|
||
[[layers]]
|
||
name = 'git'
|
||
git_plugin = 'git'
|
||
<
|
||
`git_diff_position`: set the default command to split diff windows, by default
|
||
it is `10split`. Example:
|
||
>
|
||
[[layers]]
|
||
name = 'git'
|
||
git_diff_position = 'vsplit'
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be definded when the `git` layer is loaded.
|
||
>
|
||
Key Binding Description
|
||
SPC g s view git status
|
||
SPC g S stage current file
|
||
SPC g U unstage current file
|
||
SPC g c edit git commit
|
||
SPC g p git push
|
||
SPC g m git branch manager
|
||
SPC g d view git diff
|
||
SPC g A stage all files
|
||
SPC g b open git blame windows
|
||
SPC g h a stage current hunk
|
||
SPC g h r undo cursor hunk
|
||
SPC g h v preview cursor hunk
|
||
<
|
||
COMMIT OMNI FUNCTION
|
||
This layer also provides an omnifunc for git commit messages. It supports:
|
||
1. complete commit title, `fix:`, `doc:` etc.
|
||
2. complete github issue list
|
||
3. complete co-author info
|
||
|
||
==============================================================================
|
||
GITHUB *SpaceVim-layers-github*
|
||
|
||
This layer provides GitHub integration for SpaceVim
|
||
|
||
MAPPINGS
|
||
|
||
>
|
||
Key Function
|
||
-------------------------------------------------------------
|
||
SPC g h i show issues
|
||
SPC g h a show activities
|
||
SPC g h d show dashboard
|
||
SPC g h f show current file in browser
|
||
SPC g h I show issues in browser
|
||
SPC g h p show PRs in browser
|
||
<
|
||
|
||
NOTE: If you are using python2, you may get error:
|
||
>
|
||
No module named past.builtins
|
||
<
|
||
|
||
To fix this issue, you need to install `future` module.
|
||
>
|
||
python2 -m pip install future
|
||
<
|
||
|
||
==============================================================================
|
||
GTAGS *SpaceVim-layers-gtags*
|
||
|
||
`gtags` layer provides |gtags| integration for SpaceVim. To load this layer:
|
||
>
|
||
[[layers]]
|
||
name = 'gtags'
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
The layer option can be used when loading the `gtags` layer, for example:
|
||
>
|
||
[[layers]]
|
||
name = 'gtags'
|
||
auto_update = true
|
||
open_quickfix = 0
|
||
<
|
||
1. `auto_update`: enable/disable database update automatically.
|
||
2. `open_quickfix`: This setting will open the |quickfix| list when
|
||
adding entries. same as |g:gtags_open_list|
|
||
3. `gtagslabel`: the backend of gtags command, you can use `ctags` or
|
||
`pygments`. It is empty string by default.
|
||
4. `ctags_bin`: set the command or path of ctags, default is 'ctags'
|
||
|
||
==============================================================================
|
||
INCSEARCH *SpaceVim-layers-incsearch*
|
||
|
||
This layer improved incremental searching for neovim/vim
|
||
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be defined when this layer is loaded.
|
||
>
|
||
key binding description
|
||
/ incsearch forward
|
||
? incsearch backward
|
||
g/ incsearch stay
|
||
n nohlsearch n
|
||
N nohlsearch N
|
||
* nohlsearch *
|
||
# nohlsearch #
|
||
g* nohlsearch g*
|
||
g# nohlsearch g#
|
||
SPC b / fuzzy find word
|
||
<
|
||
|
||
==============================================================================
|
||
INDENTMOVE *SpaceVim-layers-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#WEBASSEMBLY *SpaceVim-layers-lang-WebAssembly*
|
||
|
||
This layer provides syntax highlighting for WebAssembly file. and it is
|
||
disabled by default, to enable this layer, add following snippet to your
|
||
SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#WebAssembly'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#ACTIONSCRIPT *SpaceVim-layers-lang-actionscript*
|
||
|
||
This layer provides syntax highlighting for actionscript. To enable this
|
||
layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#actionscript"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#AGDA *SpaceVim-layers-lang-agda*
|
||
|
||
This layer provides syntax highlighting for agda. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#agda"
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be added when this layer is loaded. All key
|
||
bindings start with `SPC l`.
|
||
|
||
|
||
>
|
||
Key binding Description
|
||
SPC l r execute current file
|
||
SPC l l reload
|
||
SPC l t infer
|
||
SPC l f refine false
|
||
SPC l F refine true
|
||
SPC l g give
|
||
SPC l c make case
|
||
SPC l a auto
|
||
SPC l e context
|
||
SPC l n Normalize IgnoreAbstract
|
||
SPC l N Normalize DefaultCompute
|
||
SPC l M Show module
|
||
SPC l y why in scope
|
||
SPC l h helper function
|
||
SPC l m metas
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#ASCIIDOC *SpaceVim-layers-lang-asciidoc*
|
||
|
||
This layer provides syntax highlighting for asciidoc. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#asciidoc"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#ASPECTJ *SpaceVim-layers-lang-aspectj*
|
||
|
||
This layer provides syntax highlighting for aspectj. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#aspectj"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#ASSEMBLY *SpaceVim-layers-lang-assembly*
|
||
|
||
This layer provides syntax highlighting for assembly. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#assembly"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#AUTOHOTKEY *SpaceVim-layers-lang-autohotkey*
|
||
|
||
This layer provides syntax highlighting for autohotkey. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#autohotkey"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#AUTOIT *SpaceVim-layers-lang-autoit*
|
||
|
||
This layer provides syntax highlighting for autoit. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#autoit"
|
||
<
|
||
|
||
KEY BINDINGS
|
||
The following key binding will be added when this layer is loaded:
|
||
>
|
||
key binding Description
|
||
SPC l r run current file
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#BATCH *SpaceVim-layers-lang-batch*
|
||
|
||
This layer is for batch development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#batch'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for batch, 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#C *SpaceVim-layers-lang-c*
|
||
|
||
This layer is for c/cpp development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#c'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
`clang_executable`: Set the path to the clang executable, by default, it is
|
||
`clang`.
|
||
|
||
`enable_clang_syntax_highlight`: Enable/Disable clang based syntax
|
||
highlighting. By default it is disabled.
|
||
|
||
`libclang_path`: The libclang shared object (dynamic library) file path. By
|
||
default it is empty
|
||
|
||
`clang_std`: This is a dictionary for setting std for c/cpp. The default
|
||
valuable is :
|
||
>
|
||
'c' : 'c11',
|
||
'cpp' : 'c++1z',
|
||
'objc' : 'c11',
|
||
'objcpp': 'c++1z',
|
||
<
|
||
|
||
`clang_flag`: You should be able to just paste most of your compile flags in
|
||
there.
|
||
|
||
Here is an example how to use above options:
|
||
>
|
||
[[layers]]
|
||
name = "lang#c"
|
||
clang_executable = "/usr/bin/clang"
|
||
clang_flag = ['-I/user/include']
|
||
[layers.clang_std]
|
||
c = "c11"
|
||
cpp = "c++1z"
|
||
objc = "c11"
|
||
objcpp = "c++1z"
|
||
<
|
||
|
||
Instead of using `clang_flag` options, You can also create a `.clang` file in
|
||
the root directory of your project. SpaceVim will load the options defined in
|
||
`.clang` file. For example:
|
||
>
|
||
-std=c11
|
||
-I/home/test
|
||
<
|
||
Note: If `.clang` file contains std configuration, it will override
|
||
`clang_std` layer option.
|
||
|
||
KEY BINDINGS
|
||
|
||
|
||
>
|
||
Key Function
|
||
--------------------------------
|
||
SPC l r run current file
|
||
g d jump to definition
|
||
<
|
||
|
||
This layer also provides REPL support for c, 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 the lsp layer is enabled for c/c++, the following key bindings can be used:
|
||
>
|
||
key binding Description
|
||
--------------------------------
|
||
g D jump to declaration
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
Known issue:
|
||
|
||
You need to use `flush(stdout)` before `scanf()` when run code in code runner.
|
||
|
||
}}}
|
||
|
||
==============================================================================
|
||
LANG#CHAPEL *SpaceVim-layers-lang-chapel*
|
||
|
||
This layer is for chapel development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#chapel'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r compile and run current file
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#CLOJURE *SpaceVim-layers-lang-clojure*
|
||
|
||
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
|
||
<
|
||
|
||
If the lsp layer is enabled for clojure, the following key bindings can be
|
||
used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
TASKS
|
||
SpaceVim will detect lein project tasks automatically. If there is
|
||
`project.clj` file in the root directory of your project. Following tasks will
|
||
be detected:
|
||
|
||
1. `lein:test`
|
||
2. `lein:run`
|
||
|
||
==============================================================================
|
||
LANG#CMAKE *SpaceVim-layers-lang-cmake*
|
||
|
||
This layer is for cmake development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#cmake'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#COFFEESCRIPT *SpaceVim-layers-lang-coffeescript*
|
||
|
||
This layer is for coffeescript development, disabled by default, to enable
|
||
this layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#coffeescript'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for coffeescript, 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#CRYSTAL *SpaceVim-layers-lang-crystal*
|
||
|
||
INTRO
|
||
|
||
The lang#crystal layer provides crystal filetype detection and syntax
|
||
highlight, crystal tool and crystal spec integration. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#crystal"
|
||
<
|
||
|
||
MAPPING
|
||
|
||
>
|
||
Key binding description
|
||
SPC l r run current code
|
||
|
||
<
|
||
This layer also provides REPL support for crystal, 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#CSHARP *SpaceVim-layers-lang-csharp*
|
||
|
||
INTRO
|
||
|
||
This layer includes utilities and language-specific mappings for csharp
|
||
development. By default it is disabled, to enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#csharp"
|
||
<
|
||
|
||
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#D *SpaceVim-layers-lang-d*
|
||
|
||
This layer is for d development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#d'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for d, 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#DART *SpaceVim-layers-lang-dart*
|
||
|
||
INTRO
|
||
|
||
The lang#dart layer provides code completion, documentation lookup, jump to
|
||
definition, dart_repl integration for dart. It uses neomake as default syntax
|
||
checker which is loaded in |SpaceVim-layer-checkers|. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#dart"
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `dart_sdk_path`: Set the path of dart sdk, by default, it is ''.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for hack, 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
|
||
<
|
||
|
||
This layer use deoplete-dart as default completion plugin for dart. If the
|
||
|SpaceVim-layer-lsp| is enabled for dart, This plugin will not be loaded.
|
||
|
||
|
||
|
||
==============================================================================
|
||
LANG#DOCKERFILE *SpaceVim-layers-lang-dockerfile*
|
||
|
||
INTRO
|
||
|
||
The lang#dockerfile layer provides syntax highlighting for dockerfile. By
|
||
default it is disabled, to enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#dockerfile"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#E *SpaceVim-layers-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-layers-lang-eiffel*
|
||
|
||
This layer is for lang#eiffel development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#eiffel'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Function
|
||
-----------------------------
|
||
SPC l c run eclean
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#ELIXIR *SpaceVim-layers-lang-elixir*
|
||
|
||
This layer is for elixir development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#elixir'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
normal g d jump to definition
|
||
<
|
||
|
||
This layer also provides REPL support for d, 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#ELM *SpaceVim-layers-lang-elm*
|
||
|
||
This layer is for elm development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#elm'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for elm, 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#ERLANG *SpaceVim-layers-lang-erlang*
|
||
|
||
This layer is for erlang development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#erlang'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for erlang, 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#EXTRA *SpaceVim-layers-lang-extra*
|
||
|
||
INTRO
|
||
|
||
The lang#extra layer provides syntax highlighting, indent for extra
|
||
programming language. includes:
|
||
|
||
1. pug
|
||
|
||
digitaltoad/vim-pug syntax highlighting and indent
|
||
|
||
2. i3config
|
||
|
||
PotatoesMaster/i3-vim-syntax syntax highlighting for i3 config
|
||
|
||
3. irssi config
|
||
|
||
isundil/vim-irssi-syntax syntax highlighting for irssi config
|
||
|
||
==============================================================================
|
||
LANG#FENNEL *SpaceVim-layers-lang-fennel*
|
||
|
||
This layer is for fennel development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#fennel'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `fennel_interpreter`: Set the path of `fennel` command,
|
||
by default it is `fennel`.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for fennel, 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#FORTH *SpaceVim-layers-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-layers-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-layers-lang-foxpro*
|
||
|
||
INTRO
|
||
|
||
The lang#foxpro layer provides syntax highlighting for foxpro.
|
||
|
||
==============================================================================
|
||
LANG#FSHARP *SpaceVim-layers-lang-fsharp*
|
||
|
||
This layer is for fsharp development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#fsharp'
|
||
<
|
||
|
||
This layer also provides REPL support for goby, 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#GO *SpaceVim-layers-lang-go*
|
||
|
||
The `lang#go` layer includes code completion and syntax checking for Go
|
||
development. This layer is not enabled by default, to enable it:
|
||
>
|
||
[[layers]]
|
||
name = 'go'
|
||
<
|
||
LANGUAGE SERVER
|
||
|
||
There are two ways to setup the golang language server protocol.
|
||
|
||
neovim(`>=0.5.0`)
|
||
|
||
If you are using `nvim(>=0.5.0)`. You need to use `enabled_clients` option of
|
||
`lsp` layer to specific the language servers. for example:
|
||
>
|
||
[[layers]]
|
||
name = 'lsp'
|
||
enabled_clients = ['gopls']
|
||
<
|
||
vim or neovim(`<0.5.0`)
|
||
|
||
To enable language server protocol support, you may need to enable lsp layer.
|
||
>
|
||
[[layers]]
|
||
name = "lsp"
|
||
filetypes = [
|
||
"go"
|
||
]
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
1. `enabled_linters`: set a list of enabled lint for golang. by default this
|
||
option is `['golangci_lint']`. The available linters includes: `go`,
|
||
`gometalinter`, etc.
|
||
2. go_file_head: the default file head for golang source code.
|
||
|
||
>
|
||
[[layers]]
|
||
name = "lang#go"
|
||
go_file_head = [
|
||
'#!/usr/bin/python3',
|
||
'# -*- coding : utf-8 -*-'
|
||
''
|
||
]
|
||
<
|
||
3. `go_interpreter`: Set the interpreter of go.
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#go'
|
||
go_interpreter = '~/download/bin/go'
|
||
<
|
||
4. format_on_save: enable/disable code formation when save go file. This
|
||
options is disabled by default, to enable it:
|
||
>
|
||
[[layers]]
|
||
name = 'lang#go'
|
||
format_on_save = true
|
||
<
|
||
|
||
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 x go referrers
|
||
normal SPC l s fill struct
|
||
normal SPC l t go test
|
||
normal SPC l v freevars
|
||
normal SPC l r go run
|
||
<
|
||
If the lsp layer is enabled for go, the following key bindings can be used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l s show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#GOBY *SpaceVim-layers-lang-goby*
|
||
|
||
This layer is for goby development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#goby'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for goby, 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#GOSU *SpaceVim-layers-lang-gosu*
|
||
|
||
This layer is for gosu development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#gosu'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#GRAPHQL *SpaceVim-layers-lang-graphql*
|
||
|
||
INTRO
|
||
|
||
The lang#graphql layer provides syntax highlighting indent for graphql. To
|
||
enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#graphql"
|
||
<
|
||
|
||
This filetype is automatically selected for filenames ending in .graphql,
|
||
.graphqls, and .gql. If you would like to enable automatic syntax support for
|
||
more file extensions (e.g., *.prisma), add following into bootstrap function.
|
||
>
|
||
augroup mybootstrap
|
||
au!
|
||
au BufNewFile,BufRead *.prisma setfiletype graphql
|
||
augroup END
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#GROOVY *SpaceVim-layers-lang-groovy*
|
||
|
||
This layer is for groovy development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#groovy'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for groovy, 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#HACK *SpaceVim-layers-lang-hack*
|
||
|
||
INTRO
|
||
|
||
This layer is for hack development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#hack'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for hack, 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#HASKELL *SpaceVim-layers-lang-haskell*
|
||
|
||
This layer is for haskell development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#haskell'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for haskell, 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#HAXE *SpaceVim-layers-lang-haxe*
|
||
|
||
This layer is for haxe development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#haxe'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `haxe_interpreter`: Set the haxe interpreter, by default, it is `haxe`
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#haxe'
|
||
haxe_interpreter = 'path/to/haxe'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for haxe, 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#HTML *SpaceVim-layers-lang-html*
|
||
|
||
This layer is for html development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = "lang#html"
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
`emmet_leader_key`: change the default leader key for emmet
|
||
`emmet_filetyps`: Set the filetypes for enabling emmet
|
||
|
||
>
|
||
[[layers]]
|
||
name = "lang#html"
|
||
emmet_leader_key = "<C-e>"
|
||
emmet_filetyps = ['html']
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
|
||
>
|
||
Key Binding description
|
||
<C-e> emmet leader key
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#HY *SpaceVim-layers-lang-hy*
|
||
|
||
This layer is for hy development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#hy'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `hy_interpreter`: Set the hy interpreter, by default, it is `hy`
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#hy'
|
||
hy_interpreter = 'path/to/hy'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for hy, 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#IDRIS *SpaceVim-layers-lang-idris*
|
||
|
||
This layer is for idris development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#idris'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for idris, 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#IO *SpaceVim-layers-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-layers-lang-j*
|
||
|
||
This layer is for j development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#j'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for j, 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#JANET *SpaceVim-layers-lang-janet*
|
||
|
||
This layer is for janet development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#janet'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for janet, 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#JAVA *SpaceVim-layers-lang-java*
|
||
|
||
This layer is for java development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
1. `format_on_save`: Enable/disabled code formatting when saving current
|
||
file. Disabled by default.
|
||
2. `java_formatter_jar`: Set the full path of google's java formatter jar.
|
||
3. `java_file_head`: The default file header for new java file. by default
|
||
it is:
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
java_file_head = [
|
||
'/**',
|
||
' * @author : `fnamemodify(expand("~"), ":t")`',
|
||
' * @created : `strftime("%Y-%m-%d")`',
|
||
'**/',
|
||
''
|
||
]
|
||
<
|
||
4. `enabled_linters`: Set the enabled linters for java, default is
|
||
`['javac']`.
|
||
MAPPINGS
|
||
|
||
>
|
||
Import key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
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
|
||
|
||
Gradle key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l g r run gradle run
|
||
normal SPC l g b run gradle build
|
||
normal SPC l g B run gradle clean build
|
||
normal SPC l g t run gradle 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 the layer option `java_formatter_jar` to the path of the jar.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
java_formatter_jar = 'path/to/google-java-format.jar'
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#JAVASCRIPT *SpaceVim-layers-lang-javascript*
|
||
|
||
This layer is for JavaScript development, includes syntax lint, code
|
||
completion etc. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#javascript"
|
||
<
|
||
The code linter is eslint, install eslint via:
|
||
>
|
||
npm install -g eslint-cli
|
||
<
|
||
LAYER OPTION
|
||
|
||
1. auto_fix: If this option is true, --fix will be added to neomake eslint
|
||
maker.
|
||
>
|
||
[[layers]]
|
||
name = "lang#javascript"
|
||
auto_fix = true
|
||
<
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Function
|
||
-----------------------------
|
||
SPC l r run current file
|
||
SPC b f format current buffer
|
||
<
|
||
|
||
This layer also provides REPL support for javascript, 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 the lsp layer is enabled for javascript, the following key bindings can be
|
||
used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#JR *SpaceVim-layers-lang-jr*
|
||
|
||
This layer adds syntax highlighting for the JR Concurrent Programming
|
||
Language. JR is the implementation of the SR language for Java. It is disabled
|
||
by default, to enable this layer, add following snippet to your SpaceVim
|
||
configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#jr'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#JSON *SpaceVim-layers-lang-json*
|
||
|
||
This layer provides syntax highlighting for json file. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#json"
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
1. conceal: Set the valuable for |g:vim_json_syntax_conceal|
|
||
|
||
2. concealcursor: Set the valuable for |g:vim_json_syntax_concealcursor|
|
||
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#json'
|
||
conceal = false
|
||
concealcursor = ''
|
||
<
|
||
3. enable_json5: Enable/Disable json5 support. Enabled by default.
|
||
|
||
==============================================================================
|
||
LANG#JSONNET *SpaceVim-layers-lang-jsonnet*
|
||
|
||
This layer adds syntax highlighting for the jsonnet Language. It is disabled
|
||
by default, to enable this layer, add following snippet to your SpaceVim
|
||
configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#jsonnet'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#JULIA *SpaceVim-layers-lang-julia*
|
||
|
||
This layer is for julia development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#julia'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
This layer brings following key bindings to julia file:
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
This layer also provides REPL support for julia, 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
|
||
<
|
||
To format julia code, you need to install `JuliaFormatter`, and the key
|
||
binding is `SPC b f`
|
||
|
||
If the lsp layer is enabled for julia, the following key bindings can be used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
g d jump to definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#KOTLIN *SpaceVim-layers-lang-kotlin*
|
||
|
||
This layer is for kotlin development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#kotlin'
|
||
<
|
||
If you want to use lsp layer for kotlin, you need to install the
|
||
kotlin_language_server.
|
||
|
||
https://github.com/fwcd/kotlin-language-server
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for kotlin, 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 the lsp layer is enabled for kotlin, the following key bindings can be
|
||
used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#LASSO *SpaceVim-layers-lang-lasso*
|
||
|
||
This layer provides syntax highlighting for lasso. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#lasso"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#LATEX *SpaceVim-layers-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#LIQUID *SpaceVim-layers-lang-liquid*
|
||
|
||
This layer provides syntax highlighting for liquid. To enable this layer:
|
||
>
|
||
[[layers]]
|
||
name = "lang#liquid"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#LISP *SpaceVim-layers-lang-lisp*
|
||
|
||
This layer is for Common Lisp development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#lisp'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for lisp, 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#LIVESCRIPT *SpaceVim-layers-lang-livescript*
|
||
|
||
This layer is for livescript development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#livescript'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for livescript, 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#LUA *SpaceVim-layers-lang-lua*
|
||
|
||
This layer includes utilities and language-specific mappings for lua
|
||
development.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#lua'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. lua_file_head: the default file head for lua source code.
|
||
|
||
>
|
||
[[layers]]
|
||
name = "lang#lua"
|
||
ruby_file_head = [
|
||
'--!/usr/bin/lua',
|
||
''
|
||
]
|
||
<
|
||
2. repl_command: the REPL command for lua
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#lua'
|
||
repl_command = '~/download/bin/lua'
|
||
<
|
||
3. format_on_save: enable/disable code formation when save lua file. This
|
||
options is disabled by default, to enable it:
|
||
>
|
||
[[layers]]
|
||
name = 'lang#lua'
|
||
format_on_save = true
|
||
<
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current script
|
||
normal SPC l b compile current file
|
||
<
|
||
|
||
This layer also provides REPL support for lua, 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#MARKDOWN *SpaceVim-layers-lang-markdown*
|
||
|
||
This layer adds markdown support to SpaceVim. It is disabled by default, to
|
||
enable this layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#markdown'
|
||
<
|
||
LAYER OPTIONS
|
||
|
||
The following layer options are supported in this layer:
|
||
|
||
1. `enabled_formatters`: Set the enabled formatters, by default it is
|
||
`['remark']`. To use `prettier`, you need to install `prettier` via:
|
||
>
|
||
npm install --global prettier
|
||
<
|
||
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.
|
||
Here is an example for loading `lang#markdown` layer:
|
||
>
|
||
[[layers]]
|
||
name = 'lang#markdown'
|
||
enableWcwidth = 1
|
||
listItemIndent = 1
|
||
enabled_formatters = ['prettier']
|
||
<
|
||
KEY BINDINGS
|
||
|
||
This layer brings following key bindings to markdown file:
|
||
>
|
||
Key binding Description
|
||
Ctrl-b insert code block
|
||
SPC l r run code in code block
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#MOONSCRIPT *SpaceVim-layers-lang-moonscript*
|
||
|
||
This layer is for moonscript development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#moonscript'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Function
|
||
-----------------------------
|
||
SPC l r Run current moonscript
|
||
<
|
||
|
||
This layer also provides REPL support for moonscript, 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#NIM *SpaceVim-layers-lang-nim*
|
||
|
||
This layer is for nim development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#nim'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l r run current file
|
||
normal SPC l d show symbol info
|
||
normal SPC l e rename symbol in file
|
||
normal SPC l E rename symbol in project
|
||
normal g d go to definition
|
||
<
|
||
|
||
This layer also provides REPL support for nim, 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#NIX *SpaceVim-layers-lang-nix*
|
||
|
||
INTRO
|
||
The lang#nix layer provides syntax highlighting and basic LSP support for the
|
||
Nix expression language.
|
||
|
||
==============================================================================
|
||
LANG#OCAML *SpaceVim-layers-lang-ocaml*
|
||
|
||
OCaml autocompletion provided by merlin.
|
||
|
||
Requirements:
|
||
>
|
||
opam
|
||
merlin
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#OCTAVE *SpaceVim-layers-lang-octave*
|
||
|
||
This layer adds syntax highlighting for the GNU Octave. It is disabled by
|
||
default, to enable this layer, add following snippet to your SpaceVim
|
||
configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#octave'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#PACT *SpaceVim-layers-lang-pact*
|
||
|
||
This layer is for pact development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#pact'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for pact, 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#PASCAL *SpaceVim-layers-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-layers-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-layers-lang-php*
|
||
|
||
This layer is for php development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#php'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `php_interpreter`: Set the PHP interpreter, by default, it is `php`
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#php'
|
||
php_interpreter = 'path/to/php'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Function
|
||
--------------------------------
|
||
SPC l r run current file
|
||
g d jump to definition
|
||
<
|
||
|
||
This layer also provides REPL support for php, 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 the lsp layer is enabled for php, the following key bindings can be used:
|
||
>
|
||
key binding Description
|
||
--------------------------------
|
||
g D jump to declaration
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#PLANTUML *SpaceVim-layers-lang-plantuml*
|
||
|
||
This layer is for plantuml development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#plantuml'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `java_command`: Set the path of java command, by default, it is `java`
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#plantuml'
|
||
java_command = 'path/to/java'
|
||
<
|
||
2. `plantuml_jar_path`: Set the path of `pluatuml.jar`.
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#plantuml'
|
||
plantuml_jar_path = 'path/to/plantuml.jar'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l p preview uml file
|
||
normal SPC l c stop preview
|
||
normal SPC l s save uml file
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#PONY *SpaceVim-layers-lang-pony*
|
||
|
||
This layer is for pony development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#pony'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#POSTSCRIPT *SpaceVim-layers-lang-postscript*
|
||
|
||
This layer is for postscript development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#postscript'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#POWERSHELL *SpaceVim-layers-lang-powershell*
|
||
|
||
This layer is for powershell development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#powershell'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
1. `enabled_formatters`: set the default formatters of powershell, default
|
||
is
|
||
`['PowerShellBeautifier']`. you can also add `PSScriptAnalyzer` into the list.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#powershell'
|
||
enabled_formatters = ['PowerShellBeautifier']
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#PROCESSING *SpaceVim-layers-lang-processing*
|
||
|
||
This layer is for Processing development: https://processing.org
|
||
|
||
This is based on the work from https://github.com/sophacles/vim-processing
|
||
|
||
Requirements:
|
||
|
||
1. You will need a copy of processing-java. The best way to do this is to
|
||
get a copy of the Processing IDE from https://processing.org/download/
|
||
|
||
Once you have it, run it, and then select Tools -> install
|
||
"processing-java"
|
||
|
||
MAPPINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
-----------------------------------------------
|
||
normal SPC l r execute current sketch
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#PROLOG *SpaceVim-layers-lang-prolog*
|
||
|
||
This layer is for prolog development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
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-layers-lang-puppet*
|
||
|
||
This layer is for Puppet development. It provides syntax highlighting and
|
||
syntax checking. This layer is not loaded by default. To load this layer, add
|
||
following snippet into SpaceVim configuration file:
|
||
>
|
||
[[layers]]
|
||
name = 'lang#puppet'
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#PURESCRIPT *SpaceVim-layers-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
|
||
|
||
|
||
>
|
||
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-layers-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
|
||
g d jump to definition
|
||
SPC l i s format imports
|
||
SPC l i r run autoflake on current buffer
|
||
SPC l i i run :ImportName command
|
||
SPC l c r coverage report
|
||
SPC l c s coverage show
|
||
SPC l c e coverage session
|
||
SPC l c f coverage refresh
|
||
SPC l g d generate docstring
|
||
SPC l v l list all virtualenvs
|
||
SPC l v d deactivate current virtualenv
|
||
<
|
||
|
||
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 the lsp layer is enabled for python, the following key bindings can be
|
||
used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#QML *SpaceVim-layers-lang-qml*
|
||
|
||
This layer is for qml development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#qml'
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#R *SpaceVim-layers-lang-r*
|
||
|
||
This layer is for r development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#r'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
The command of code runner for R is `"R <%s"` `%s` will be replaced to the
|
||
path of current R file.
|
||
>
|
||
Key Function
|
||
--------------------------------
|
||
SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for r, 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-layers-lang-racket*
|
||
|
||
This layer is for racket development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#racket'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for racket, 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-layers-lang-red*
|
||
|
||
This layer is for red development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#red'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for red, 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#REASON *SpaceVim-layers-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-layers-lang-ring*
|
||
|
||
This layer is for ring development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#ring'
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
1. ring_repl: Set the path of ring repl.
|
||
|
||
>
|
||
[[layers]]
|
||
name = "lang#ring"
|
||
ring_repl = "/path/to/repl.ring"
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The code runner for ring is "ring %" % will be replaced to the path of current
|
||
ring file.
|
||
>
|
||
Key Function
|
||
--------------------------------
|
||
SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for ring, 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#RUBY *SpaceVim-layers-lang-ruby*
|
||
|
||
This layer is for ruby development, disabled by default, to enable this layer,
|
||
add following snippet to your |SpaceVim-options| file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#ruby'
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
1. ruby_file_head: the default file head for ruby source code.
|
||
|
||
>
|
||
[[layers]]
|
||
name = "lang#ruby"
|
||
ruby_file_head = [
|
||
'#!/usr/bin/ruby -w',
|
||
'# -*- coding : utf-8 -*-'
|
||
''
|
||
]
|
||
<
|
||
2. repl_command: the REPL command for ruby
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#ruby'
|
||
repl_command = '~/download/bin/ruby_repl'
|
||
<
|
||
3. format_on_save: enable/disable code formation when save ruby file. This
|
||
options is disabled by default, to enable it:
|
||
>
|
||
[[layers]]
|
||
name = 'lang#ruby'
|
||
repl_command = '~/download/bin/ruby_repl'
|
||
format_on_save = true
|
||
<
|
||
KEY BINDINGS
|
||
|
||
|
||
>
|
||
Key Function
|
||
--------------------------------
|
||
SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for ruby, 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
|
||
<
|
||
To enable lsp support for ruby, you need to instal solargraph.
|
||
>
|
||
gem install --user-install solargraph
|
||
<
|
||
Enable the lsp layer for ruby:
|
||
>
|
||
[[layers]]
|
||
name = 'lsp'
|
||
enabled_clients = ['solargraph']
|
||
<
|
||
If the lsp layer is enabled for ruby, the following key bindings can be used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#RUST *SpaceVim-layers-lang-rust*
|
||
|
||
`lang#rust` layers provides rust programming language support for SpaceVim.
|
||
This layers includes syntax highlighting, code runner, REPL for rust.
|
||
|
||
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 Rust nightly build
|
||
|
||
>
|
||
rustup install nightly
|
||
<
|
||
3. Install racer:
|
||
|
||
>
|
||
cargo +nightly install racer
|
||
<
|
||
4. Set the RUST_SRC_PATH variable in your .bashrc:
|
||
|
||
>
|
||
RUST_SRC_PATH=~/.multirust/toolchains/<change>/lib/rustlib/src/rust/src
|
||
export RUST_SRC_PATH
|
||
<
|
||
5. Add racer to your path, or set the path with:
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#rust'
|
||
racer_cmd = "/path/to/racer/bin"
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
The following layer options are supported when loading this layer:
|
||
|
||
1. `recommended_style`: `true`/`false` (Enable/Disable) recommended code
|
||
style for rust. This option is disabled by default.
|
||
2. `format_on_save`: `true`/`false` (Enable/Disable) format current buffer
|
||
after save. This option is disabled by default.
|
||
3. `racer_cmd`: The path of `racer` binary. This option is `racer` by
|
||
default.
|
||
4. `rustfmt_cmd`: The path of `rustfmt` binary. This option is `rustfmt`
|
||
by default.
|
||
|
||
MAPPINGS
|
||
|
||
>
|
||
Key Function
|
||
-----------------------------------------------
|
||
g d rust-definition
|
||
SPC l d rust-doc
|
||
SPC l r run current file
|
||
SPC l e rls-rename-symbol
|
||
SPC l u rls-show-references
|
||
SPC l c b cargo-build
|
||
SPC l c c cargo-clean
|
||
SPC l c f cargo-fmt
|
||
SPC l c t cargo-test
|
||
SPC l c u cargo-update
|
||
SPC l c B cargo-bench
|
||
SPC l c D cargo-docs
|
||
SPC l c r cargo-run
|
||
SPC l c l cargo-clippy
|
||
<
|
||
|
||
This layer also provides REPL support for rust, 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 the lsp layer is enabled for python, the following key bindings can be
|
||
used:
|
||
>
|
||
key binding Description
|
||
g D jump to type definition
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#SCALA *SpaceVim-layers-lang-scala*
|
||
|
||
This layer is for Scala development.
|
||
|
||
MAPPINGS
|
||
|
||
>
|
||
Import key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal <F4> show candidates for importing of cursor symbol
|
||
insert <F4> show candidates for importing of cursor symbol
|
||
normal SPC l i c show candidates for importing of cursor symbol
|
||
normal SPC l i q prompt for a qualified import
|
||
normal SPC l i o organize imports of current file
|
||
normal SPC l i s sort imports of current file
|
||
insert <c-;>i prompt for a qualified import
|
||
insert <c-;>o organize imports of current file
|
||
insert <c-;>s sort imports of current file
|
||
|
||
Debug key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l d t show debug stack trace of current frame
|
||
normal SPC l d c continue the execution
|
||
normal SPC l d b set a breakpoint for the current line
|
||
normal SPC l d B clear all breakpoints
|
||
normal SPC l d l launching debugger
|
||
normal SPC l d i step into next statement
|
||
normal SPC l d o step over next statement
|
||
normal SPC l d O step out of current function
|
||
|
||
Sbt key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l b c sbt clean compile
|
||
normal SPC l b r sbt run
|
||
normal SPC l b t sbt test
|
||
normal SPC l b p sbt package
|
||
normal SPC l b d sbt show project dependencies tree
|
||
normal SPC l b l sbt reload project build definition
|
||
normal SPC l b u sbt update external dependencies
|
||
normal SPC l b e run sbt to generate .ensime config file
|
||
|
||
Execute key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l r run main class
|
||
|
||
REPL key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l s i start a scala 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
|
||
|
||
Other key bindings:
|
||
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC l Q bootstrap server when first-time-use
|
||
normal SPC l h show Documentation of cursor symbol
|
||
normal SPC l n inline local refactoring of cursor symbol
|
||
normal SPC l e rename cursor symbol
|
||
normal SPC l g find Definition of cursor symbol
|
||
normal SPC l t show Type of expression of cursor symbol
|
||
normal SPC l p show Hierarchical view of a package
|
||
normal SPC l u find Usages of cursor symbol
|
||
|
||
<
|
||
SpaceVim uses [`ensime-vim`](https://ensime.github.io/editors/vim/install/) to
|
||
provide code completion, format, sort imports etc, if has python support. Also
|
||
you can enable lsp layer to has a better experience.
|
||
|
||
|
||
LANGUAGE SERVER `METALS-VIM`
|
||
|
||
Right now `metals-vim` works with `coc.nvim` to offer a richer user experience
|
||
than other servers(LanguageClient-neovim or vim-lsp). Please make sure that
|
||
`metals-vim` executable is in your `system $PATH`. Installation guide is here:
|
||
[`metals-vim`](https://scalameta.org/metals/docs/editors/vim.html)
|
||
|
||
|
||
ENSIME-VIM SETUP STEPS
|
||
|
||
The following is quick install steps, if you want to see complete details,
|
||
please see: [`ensime-vim`](https://ensime.github.io/editors/vim/install/)
|
||
|
||
1. Install vim`s plugin and its dependencies as following.
|
||
|
||
`pip install websocket-client sexpdata`,
|
||
|
||
`pip install pynvim` (neovim only).
|
||
|
||
2. Integration ENSIME with your build tools, here we use sbt. add
|
||
(sbt-ensime) as global plugin for sbt: Put code `addSbtPlugin("org.ensime"
|
||
% "sbt-ensime" % "2.6.1")` in file '~/.sbt/plugins/plugins.sbt' (create
|
||
if not exists). Armed with your build tool plugin, generate the `.ensime`
|
||
config file from your project directory in command line, e.g. for sbt use
|
||
`sbt ensimeConfig`, or `./gradlew ensime` for Gradle. the first time will
|
||
take several minutes.
|
||
|
||
3. The first time you use ensime-vim (per Scala version), it will
|
||
`bootstrap` the ENSIME server installation when opening a Scala file you
|
||
will be prompted to run |:EnInstall|. Do that and give it a minute or two
|
||
to run. After this, you should see reports in Vim's message area that
|
||
ENSIME is coming up, and the indexer and analyzer are ready. Going
|
||
forward, ensime-vim will automatically start the ENSIME server when you
|
||
edit Scala files in a project with an `.ensime` config present.
|
||
|
||
|
||
CODE FORMATTING
|
||
|
||
1. To make neoformat support scala file, you should install scalariform.
|
||
[`scalariform`](https://github.com/scala-ide/scalariform) and set
|
||
`scalariform_jar` option to the path of the jar.
|
||
|
||
2. If lsp
|
||
[`metals-vim`](https://scalameta.org/metals/docs/editors/overview.html) is
|
||
enabled, it will automatically use
|
||
[`scalafmt`](https://scalameta.org/scalafmt/docs/configuration.html) to
|
||
format code.
|
||
|
||
==============================================================================
|
||
LANG#SCHEME *SpaceVim-layers-lang-scheme*
|
||
|
||
This layer is for scheme development, disabled by default, to enable this
|
||
layer, add following snippet to your |SpaceVim-options| file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#scheme'
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
1. scheme_dialect: Set the dialect of scheme.
|
||
|
||
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-layers-lang-sh*
|
||
|
||
This layer is for shell script development, including bash, zsh and fish. This
|
||
layer provides basic syntax highlighting and code completion , and it is
|
||
disabled by default, to enable this layer, add following snippet to your
|
||
|SpaceVim-options| file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#sh'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#SMALLTALK *SpaceVim-layers-lang-smalltalk*
|
||
|
||
This layer is for smalltalk development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#smalltalk'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#SML *SpaceVim-layers-lang-sml*
|
||
|
||
This layer is for Standard ML development. This layer provides basic syntax
|
||
highlighting and code completion , and it is disabled by default, to enable
|
||
this layer, add following snippet to your |SpaceVim-options| file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#sml'
|
||
<
|
||
|
||
You can run `:SMLCheckHealth` to check whether the environment if OK.
|
||
|
||
LAYER OPTIONS
|
||
|
||
`smlnj_path`: Set the path to the smlnj executable, by default, it is `sml`.
|
||
|
||
`mlton_path`: Set the path to the mlton executable, by default, it is `mlton`.
|
||
|
||
`repl_options`: Options used for REPL, by default, it is ''.
|
||
|
||
`auto_create_def_use`: Whether to build def-use files on save automatically.
|
||
By default, it is `mlb`. Valid values is:
|
||
>
|
||
'mlb': Auto build def-use if there's a *.mlb file
|
||
'always': Always build def-use file
|
||
'never': Never build def-use file
|
||
<
|
||
|
||
`enable_conceal`: `0`/`1`. Whether to enable concealing for SML files. `0` by
|
||
defaults. `'a` becomes `α` (or `'α`). `fn` becomes `λ.`
|
||
|
||
`enable_conceal_show_tick`: `0`/`1`. When conceal is enabled, show `'α` for
|
||
`'a` instead of `α`. Helps for alignment. `0` by default.
|
||
|
||
`sml_file_head`: Template for new sml file.
|
||
|
||
Here is an example how to use above options:
|
||
>
|
||
[[layers]]
|
||
name = "lang#sml"
|
||
smlnj_path = "/usr/local/smlnj/bin/sml"
|
||
mlton_path = "/usr/local/bin/mlton"
|
||
repl_options = ''
|
||
enable_conceal = 1
|
||
enable_conceal_show_tick = 1
|
||
auto_create_def_use = 'always'
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#SQL *SpaceVim-layers-lang-sql*
|
||
|
||
This layer is for sql development, disabled by default, to enable this layer,
|
||
add following snippet to your |SpaceVim-options| file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#sql'
|
||
<
|
||
|
||
OPTIONS
|
||
|
||
1. `enabled_formatters`: set the default formatters for sql, default is
|
||
['sqlfmtorg'] https://github.com/sql-formatter-org/sql-formatter you can
|
||
also use `sqlformat` which is from
|
||
https://github.com/andialbrecht/sqlparse
|
||
2. `sql_formatter_command`: Set the command of sql-formatter.
|
||
3. `sql_dialect`: set the SQL dialect, default is basic sql.
|
||
4. `sql_formatter_config`: set the path of config path. default is empty
|
||
string.
|
||
5. `sqlformat_cmd`: set the command for sqlformat.
|
||
6. `sqlformat_output_encode`: set the output encoding of sqlformat, default
|
||
is `utf-8`. If you are using window, maybe need to change this option to
|
||
`cp936`.
|
||
|
||
|
||
|
||
==============================================================================
|
||
LANG#SWIFT *SpaceVim-layers-lang-swift*
|
||
|
||
This layer is for swift development, including syntax highlighting and indent.
|
||
To enable it:
|
||
>
|
||
[[layers]]
|
||
name = "lang#swift"
|
||
<
|
||
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-layers-lang-swig*
|
||
|
||
This layer is for swig development, including syntax highlighting and indent.
|
||
To enable it:
|
||
>
|
||
[[layers]]
|
||
name = "lang#swig"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#TCL *SpaceVim-layers-lang-tcl*
|
||
|
||
This layer is for tcl development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#tcl'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for tcl, 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#TEAL *SpaceVim-layers-lang-teal*
|
||
|
||
This layer is for teal development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#teal'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `teal_interpreter`: Set the teal interpreter, by default, it is `tl`
|
||
|
||
>
|
||
[[layers]]
|
||
name = 'lang#teal'
|
||
teal_interpreter = 'path/to/tl'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for teal, 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#TOML *SpaceVim-layers-lang-toml*
|
||
|
||
This layer provides basic syntax highlighting for toml. To enable it:
|
||
>
|
||
[[layers]]
|
||
name = "lang#toml"
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#TYPESCRIPT *SpaceVim-layers-lang-typescript*
|
||
|
||
This layer provides typescript development support for SpaceVim. To enable
|
||
this layer, add following snippet into SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#typescript'
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The following key bindings works well in both vim and neovim.
|
||
>
|
||
Key binding Description
|
||
----------------------------------------
|
||
g D jump to type definition
|
||
SPC l d show document
|
||
SPC l e rename symbol
|
||
SPC l i import
|
||
<
|
||
The following key bindings only work in neovim.
|
||
>
|
||
Key binding Description
|
||
----------------------------------------
|
||
SPC l f run code fix
|
||
SPC l p preview definition
|
||
SPC l t view type
|
||
SPC l R show reference
|
||
SPC l D show errors
|
||
SPC l o organizes imports
|
||
SPC l g d generate JSDoc
|
||
<
|
||
The following key bindings only work in vim.
|
||
>
|
||
Key binding Description
|
||
----------------------------------------
|
||
SPC l m interface implementations
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#V *SpaceVim-layers-lang-v*
|
||
|
||
This layer is for v development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#v'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for v, 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#VALA *SpaceVim-layers-lang-vala*
|
||
|
||
This layer is for vala development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#vala'
|
||
<
|
||
ENABLE LANGUAGE SERVER
|
||
|
||
To enable lsp layer for vala language. you need to install
|
||
vala-language-server, for example, use AUR in Arch Linux.
|
||
>
|
||
yay -S vala-language-server
|
||
<
|
||
If you are using `nvim(>=0.5.0)`. You need to use `enabled_clients` to
|
||
specific the language servers. For example:
|
||
>
|
||
[[layers]]
|
||
name = 'lsp'
|
||
enabled_clients = ['vala_ls']
|
||
<
|
||
If you are using `nvim(<0.5.0)` or `vim`, you need to use `override_cmd`
|
||
option. For example:
|
||
>
|
||
[[layers]]
|
||
name = "lsp"
|
||
filetypes = [
|
||
"vala",
|
||
"genie",
|
||
]
|
||
[layers.override_cmd]
|
||
vala = ["vala-language-server"]
|
||
genie = ["vala-language-server"]
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#VBNET *SpaceVim-layers-lang-vbnet*
|
||
|
||
This layer is for vbnet development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#vbnet'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#VERILOG *SpaceVim-layers-lang-verilog*
|
||
|
||
This layer is for verilog development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#verilog'
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#VIM *SpaceVim-layers-lang-vim*
|
||
|
||
This layer is for vim script development, disabled by default, to enable this
|
||
layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#vim'
|
||
<
|
||
|
||
The `checkers` layer provides syntax linter for vim. you need to install the
|
||
`vint` command:
|
||
>
|
||
pip install vim-vint
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be added when this layer is loaded:
|
||
>
|
||
key binding Description
|
||
SPC l e eval cursor expr
|
||
SPC l v run HelpfulVersion cword
|
||
SPC l f open exception trace
|
||
g d jump to definition
|
||
<
|
||
|
||
If the lsp layer is enabled for vim script, the following key bindings can be
|
||
used:
|
||
>
|
||
key binding Description
|
||
SPC l e rename symbol
|
||
SPC l x show references
|
||
SPC l h show line diagnostics
|
||
SPC l d show document
|
||
K show document
|
||
SPC l w l list workspace folder
|
||
SPC l w a add workspace folder
|
||
SPC l w r remove workspace folder
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#VUE *SpaceVim-layers-lang-vue*
|
||
|
||
This layer is for vue development, disabled by default, to enable this layer,
|
||
add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#vue'
|
||
<
|
||
|
||
The `checkers` layer provides syntax linter for vue. you need to install the
|
||
`eslint` and `eslint-plugin-vue`:
|
||
>
|
||
npm install -g eslint eslint-plugin-vue
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#WDL *SpaceVim-layers-lang-wdl*
|
||
|
||
This layer provides syntax highlighting for WDL file. and it is disabled by
|
||
default, to enable this layer, add following snippet to your SpaceVim
|
||
configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#wdl'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#WOLFRAM *SpaceVim-layers-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-layers-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.
|
||
|
||
==============================================================================
|
||
LANG#XQUERY *SpaceVim-layers-lang-xquery*
|
||
|
||
This layer provides basic syntax highlighting and indent file for xquery,
|
||
disabled by default, to enable this layer, add following snippet to your
|
||
|SpaceVim-options| file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#xquery'
|
||
<
|
||
|
||
==============================================================================
|
||
LANG#YANG *SpaceVim-layers-lang-yang*
|
||
|
||
This layer adds syntax highlighting for the YANG data file. It is disabled by
|
||
default, to enable this layer, add following snippet to your SpaceVim
|
||
configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#yang'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANG#ZIG *SpaceVim-layers-lang-zig*
|
||
|
||
This layer is for zig language development, disabled by default, to enable
|
||
this layer, add following snippet to your SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'lang#zig'
|
||
<
|
||
|
||
LAYER OPTION
|
||
|
||
1. `ztagsbin`: set the path of ztags, by default this option is `ztags`
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
---------------------------------------------
|
||
normal SPC l r run current file
|
||
<
|
||
|
||
This layer also provides REPL support for zig, 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
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
LANGUAGE SERVER PROTOCOL *SpaceVim-layers-lsp*
|
||
|
||
This layer provides language client support for SpaceVim. By default, this
|
||
layer is not loaded. You need to enable this layer with specific clients, for
|
||
example:
|
||
>
|
||
[[layers]]
|
||
name = 'lsp'
|
||
enabled_clients = ['vimls']
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
The following options can be used with this layer:
|
||
|
||
1. `enabled_clients`: set the enabled servers. This options only for
|
||
neovim 0.5.0+.
|
||
2. `override_cmd`: If you are not using neovim 0.5.0+, use this option to
|
||
set default lsp command.
|
||
|
||
LSP SERVERS
|
||
|
||
The default LSP servers are:
|
||
>
|
||
name Discriptions
|
||
---------------------------------------------------
|
||
vimls vim-language-server
|
||
<
|
||
USER AUTOCMD
|
||
|
||
1. SpaceVimLspSetup: This User autocmd will be triggered after lsp setup
|
||
function.
|
||
|
||
==============================================================================
|
||
LEADERF *SpaceVim-layers-leaderf*
|
||
|
||
This layer provides fuzzy finder feature which is based on |leaderf|, and this
|
||
layer requires vim compiled with `+python` or `+python3`. This layer is not
|
||
loaded by default. To use this layer:
|
||
>
|
||
[[layers]]
|
||
name = 'leaderf'
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be enabled when this layer is loaded:
|
||
>
|
||
Key bindings Description
|
||
SPC p f / Ctrl-p search files in current directory
|
||
<Leader> f SPC Fuzzy find menu:CustomKeyMaps
|
||
<Leader> f e Fuzzy find register
|
||
<Leader> f h Fuzzy find history/yank
|
||
<Leader> f j Fuzzy find jump, change
|
||
<Leader> f l Fuzzy find location list
|
||
<Leader> f m Fuzzy find output messages
|
||
<Leader> f o Fuzzy find functions
|
||
<Leader> f t Fuzzy find tags
|
||
<Leader> f q Fuzzy find quick fix
|
||
<Leader> f r Resumes Unite window
|
||
<
|
||
|
||
==============================================================================
|
||
MAIL *SpaceVim-layers-mail*
|
||
|
||
The `mail` layer provides basic function to connected to mail server. NOTE:
|
||
this layer is still wip now.
|
||
LAYER OPTIONS
|
||
|
||
1. `imap_host`: set the imap server host
|
||
2. `imap_port`: set the imap server port
|
||
3. `imap_login`: set the login of imap server
|
||
4. `imap_password`: set the password of imap server
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Bingding Description
|
||
SPC a m open mail client
|
||
<
|
||
|
||
==============================================================================
|
||
OPERATOR *SpaceVim-layers-operator*
|
||
|
||
With this layer, you can confirm that text is yanked correctly and see yanked
|
||
text by highlighting.
|
||
|
||
==============================================================================
|
||
SHELL *SpaceVim-layers-shell*
|
||
|
||
SpaceVim uses deol.nvim for shell support in neovim and uses vimshell for vim.
|
||
For more info, read |deol| and |vimshell|.
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `default_shell`: config the default shell to be used by shell layer.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key bindings Description
|
||
SPC ' Open or switch to terminal windows
|
||
q Hide terminal windows in normal mode
|
||
ctrl-` Hide terminal window in terminal mode
|
||
<
|
||
|
||
==============================================================================
|
||
SSH *SpaceVim-layers-ssh*
|
||
|
||
The `ssh` layer provides basic function to connected to ssh server.
|
||
|
||
LAYER OPTIONS
|
||
|
||
1. `ssh_port`: set the port of ssh server
|
||
2. `ssh_address`: set the ip of ssh server
|
||
3. `ssh_user`: set the user name of ssh server
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Bingding Description
|
||
SPC S o connect to ssh server
|
||
<
|
||
|
||
==============================================================================
|
||
TELESCOPE *SpaceVim-layers-telescope*
|
||
|
||
This layer provides fuzzy finder feature which is based on |telescope|, and
|
||
this This layer is not loaded by default. To use this layer:
|
||
>
|
||
[[layers]]
|
||
name = 'telescope'
|
||
<
|
||
KEY BINDINGS
|
||
|
||
The following key bindings will be enabled when this layer is loaded:
|
||
>
|
||
Key bindings Description
|
||
SPC p f / Ctrl-p search files in current directory
|
||
<Leader> f SPC Fuzzy find menu:CustomKeyMaps
|
||
<Leader> f e Fuzzy find register
|
||
<Leader> f h Fuzzy find history/yank
|
||
<Leader> f j Fuzzy find jump, change
|
||
<Leader> f l Fuzzy find location list
|
||
<Leader> f m Fuzzy find output messages
|
||
<Leader> f o Fuzzy find functions
|
||
<Leader> f t Fuzzy find tags
|
||
<Leader> f q Fuzzy find quick fix
|
||
<Leader> f r Resumes Unite window
|
||
<
|
||
|
||
==============================================================================
|
||
TEST *SpaceVim-layers-test*
|
||
|
||
This layer allows to run tests on SpaceVim
|
||
|
||
LAYER OPTIONS
|
||
|
||
`use_ultest`: enable/disable vim-ultest plugin, this is disabled by default.
|
||
|
||
MAPPINGS
|
||
|
||
>
|
||
Mode Key Function
|
||
-------------------------------------------------------------
|
||
normal SPC k n run nearest test
|
||
normal SPC k f run test file
|
||
normal SPC k s run test suite
|
||
normal SPC k l run the latest test
|
||
normal SPC k v visits the last run test file
|
||
<
|
||
|
||
==============================================================================
|
||
TMUX *SpaceVim-layers-tmux*
|
||
|
||
`tmux` layer 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 following to spacevim configuration file:
|
||
>
|
||
[[layers]]
|
||
name = 'tmux'
|
||
<
|
||
If you are having issues with <C-h> in a neovim buffer, see
|
||
|
||
https://github.com/neovim/neovim/issues/2048#issuecomment-78045837
|
||
|
||
LAYER OPTIONS
|
||
|
||
`enable_tmux_clipboard`: this option is used to enable or disable tmux
|
||
clipboard, by default this option is `false`.
|
||
|
||
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#CPICKER *SpaceVim-layers-tools-cpicker*
|
||
|
||
The `tools#cpicker` layer provides a color picker. this layer is disabled by
|
||
default, to enable this layer, add following snippet to your SpaceVim
|
||
configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'tools#cpicker'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
1. default_spaces: set the default color spaces, the default value is
|
||
`['rgb', 'hsl']`
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Function
|
||
---------------------------------------------
|
||
SPC i p c open color picker
|
||
<
|
||
|
||
Key bindings in cpicker:
|
||
>
|
||
Key Function
|
||
---------------------------------------------
|
||
<Enter> copy color
|
||
j/<Down> move cursor down
|
||
k/<Up> move cursor up
|
||
h/<Left> reduce
|
||
l/<Right> increase
|
||
<
|
||
COMMANDS
|
||
Instead of using key Binding, this layer also provides a Neovim command
|
||
`:Cpicker` which can be used in cmdline. For example:
|
||
>
|
||
:Cpicker rgb cmyk
|
||
<
|
||
|
||
==============================================================================
|
||
TOOLS#DASH *SpaceVim-layers-tools-dash*
|
||
|
||
This layer provides Dash integration for SpaceVim
|
||
|
||
==============================================================================
|
||
TOOLS#MPV *SpaceVim-layers-tools-mpv*
|
||
|
||
The `tools#mpv` layer provides mpv integration for SpaceVim. this layer is
|
||
disabled by default, to enable this layer, add following snippet to your
|
||
SpaceVim configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'tools#mpv'
|
||
<
|
||
|
||
LAYER OPTIONS
|
||
|
||
The following options can be used with this layer:
|
||
|
||
1. `mpv_interpreter`: set the path of `mpv`.
|
||
2. `musics_directory`: set the path of directory where to store musics. The
|
||
default directory is `~/Music`
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key Function
|
||
---------------------------------------------
|
||
SPC m m l fuzzy find musics
|
||
SPC m m n next music
|
||
SPC m m s stop mpv
|
||
<
|
||
|
||
==============================================================================
|
||
TOOLS#SCREENSAVER *SpaceVim-layers-tools-screensaver*
|
||
|
||
This layer provides a screensaver feature.
|
||
>
|
||
[[layers]]
|
||
name = 'tools#screensaver'
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
TOOLS#ZEAL *SpaceVim-layers-tools-zeal*
|
||
|
||
This layer provides Zeal integration for SpaceVim
|
||
|
||
==============================================================================
|
||
TREESITTER *SpaceVim-layers-treesitter*
|
||
|
||
This layer provides treesitter support for SpaceVim.
|
||
|
||
==============================================================================
|
||
UI *SpaceVim-layers-ui*
|
||
|
||
The `ui` layer defines the default interface for SpaceVim, and it is loaded by
|
||
default. This layer includes scrollbar, indentline, and cursorword
|
||
highlighting.
|
||
>
|
||
[[layers]]
|
||
name = 'ui'
|
||
enable_sidebar = false
|
||
enable_scrollbar = false
|
||
enable_indentline = true
|
||
enable_cursorword = false
|
||
indentline_char = '|'
|
||
conceallevel = 0
|
||
concealcursor = ''
|
||
cursorword_delay = 50
|
||
cursorword_exclude_filetype = []
|
||
indentline_exclude_filetype = []
|
||
<
|
||
|
||
if you want to disable `ui` layer, you can use:
|
||
>
|
||
[[layers]]
|
||
name = 'ui'
|
||
enabled = fasle
|
||
<
|
||
OPTIONS
|
||
|
||
1. `enable_sidebar`: Enable/disable sidebar.
|
||
2. `enable_scrollbar`: Enable/disable floating scrollbar of current buffer.
|
||
Disabled by default. This feature requires neovim's floating window.
|
||
3. `enable_indentline`: Enable/disable indentline of current buffer.
|
||
Enabled by default.
|
||
4. `enable_cursorword`: Enable/disable cursorword highlighting.
|
||
Disabled by default.
|
||
5. `indentline_char`: Set the character of indentline.
|
||
6. `conceallevel`: set the conceallevel option.
|
||
7. `concealcursor`: set the concealcursor option.
|
||
8. `cursorword_delay`: The delay duration in milliseconds for setting the
|
||
word highlight after cursor motions, the default is 50.
|
||
9. `cursorword_exclude_filetypes`: Ignore filetypes when enable cursorword
|
||
highlighting.
|
||
10. `indentline_exclude_filetype`: Ignore filetypes when enable indentline.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC t h ui current buffer or selection lines
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
UNITE *SpaceVim-layers-unite*
|
||
|
||
This layer provides fuzzy finder feature which is based on |unite|. This layer
|
||
is not loaded by default, to use this layer, you need to load `unite` layer in
|
||
your configuration file.
|
||
>
|
||
[[layers]]
|
||
name = 'unite'
|
||
<
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
| Key bindings | Discription |
|
||
| -------------------- | ----------------------------- |
|
||
| `<Leader> f <Space>` | Fuzzy find menu:CustomKeyMaps |
|
||
| `<Leader> f e` | Fuzzy find register |
|
||
| `<Leader> f h` | Fuzzy find history/yank |
|
||
| `<Leader> f j` | Fuzzy find jump, change |
|
||
| `<Leader> f l` | Fuzzy find location list |
|
||
| `<Leader> f m` | Fuzzy find output messages |
|
||
| `<Leader> f o` | Fuzzy find outline |
|
||
| `<Leader> f q` | Fuzzy find quick fix |
|
||
| `<Leader> f r` | Resumes Unite window |
|
||
<
|
||
|
||
|
||
==============================================================================
|
||
XMAKE *SpaceVim-layers-xmake*
|
||
|
||
The `xmake` layer provides basic function for xmake command. This layer is
|
||
disabled by default, to use it:
|
||
>
|
||
[[layers]]
|
||
name = 'xmake'
|
||
<
|
||
|
||
==============================================================================
|
||
USAGE *SpaceVim-usage*
|
||
|
||
General guide for using SpaceVim. Including layer configuration, bootstrap
|
||
function.
|
||
|
||
==============================================================================
|
||
EDITING *SpaceVim-usage-editing*
|
||
|
||
|
||
MOVING TEXT
|
||
|
||
>
|
||
Key | Action
|
||
----------------- | -----------------------------
|
||
> / Tab | Indent to right and re-select
|
||
< / Shift-Tab | Indent to left and re-select
|
||
Ctrl-Shift-Up | move lines up
|
||
Ctrl-Shift-Down | move lines down
|
||
<
|
||
CODE INDENTATION
|
||
|
||
The default indentation of code is 2, which is controlled by the option
|
||
|SpaceVim-options-default_indent|. If you prefer to use 4 as code indentation.
|
||
Just add the following snippet to the `[options]` section in the SpaceVim's
|
||
configuration file:
|
||
>
|
||
[options]
|
||
default_indent = 4
|
||
<
|
||
The `default_indent` option will be applied to vim's `&tabstop`,
|
||
`&softtabstop` and `&shiftwidth` options. By default, when the user inserts a
|
||
`<Tab>`, it will be expanded to spaces. This feature can be disabled by
|
||
`expand_tab` option the `[options]` section:
|
||
>
|
||
[options]
|
||
default_indent = 4
|
||
expand_tab = true
|
||
<
|
||
TEXT MANIPULATION COMMANDS
|
||
|
||
Text related commands (start with `x`):
|
||
>
|
||
Key Bindings | Descriptions
|
||
---------------- | -------------------------------------------------------
|
||
SPC x a # | align region at #
|
||
SPC x a % | align region at %
|
||
SPC x a & | align region at &
|
||
SPC x a ( | align region at (
|
||
SPC x a ) | align region at )
|
||
SPC x a [ | align region at [
|
||
SPC x a ] | align region at ]
|
||
SPC x a { | align region at {
|
||
SPC x a } | align region at }
|
||
SPC x a , | align region at ,
|
||
SPC x a . | align region at . (for numeric tables)
|
||
SPC x a : | align region at :
|
||
SPC x a ; | align region at ;
|
||
SPC x a = | align region at =
|
||
SPC x a ¦ | align region at ¦
|
||
SPC x a <Bar> | align region at \|
|
||
SPC x a SPC | align region at [SPC]
|
||
SPC x a r | align region at user-specified regexp
|
||
SPC x a o | align region at operators +-*/ etc
|
||
SPC x c | count the number of chars/words/lines in the region
|
||
SPC x d w | delete trailing whitespace
|
||
SPC x d SPC | Delete all spaces and tabs around point
|
||
SPC x g t | translate current word using Google Translate
|
||
SPC x i c | change symbol style to lowerCamelCase
|
||
SPC x i C | change symbol style to UpperCamelCase
|
||
SPC x i i | cycle symbol naming styles (i to keep cycling)
|
||
SPC x i - | change symbol style to kebab-case
|
||
SPC x i k | change symbol style to kebab-case
|
||
SPC x i _ | change symbol style to under_score
|
||
SPC x i u | change symbol style to under_score
|
||
SPC x i U | change symbol style to UP_CASE
|
||
SPC x j c | set the justification to center
|
||
SPC x j l | set the justification to left
|
||
SPC x j r | set the justification to right
|
||
SPC x J | move down a line of text (enter transient state)
|
||
SPC x K | move up a line of text (enter transient state)
|
||
SPC x l d | duplicate a line or region
|
||
SPC x l r | reverse lines
|
||
SPC x l s | sort lines (ignorecase)
|
||
SPC x l S | sort lines (case-senstive)
|
||
SPC x l u | uniquify lines (ignorecase)
|
||
SPC x l U | uniquify lines (case-senstive)
|
||
SPC x t c | swap (transpose) the current character with previous one
|
||
SPC x t C | swap (transpose) the current character with next one
|
||
SPC x t w | swap (transpose) the current word with previous one
|
||
SPC x t W | swap (transpose) the current word with next one
|
||
SPC x t l | swap (transpose) the current line with previous one
|
||
SPC x t L | swap (transpose) the current line with next one
|
||
SPC x u | lowercase text
|
||
SPC x U | uppercase text
|
||
SPC x ~ | toggle case text
|
||
SPC x w c | count the words in the select region
|
||
<
|
||
TEXT INSERTION COMMANDS
|
||
|
||
Text insertion commands (start with `i`):
|
||
>
|
||
Key bindings | Descriptions
|
||
------------ |
|
||
---------------------------------------------------------------------
|
||
SPC i l l | insert lorem-ipsum list
|
||
SPC i l p | insert lorem-ipsum paragraph
|
||
SPC i l s | insert lorem-ipsum sentence
|
||
SPC i p 1 | insert simple password
|
||
SPC i p 2 | insert stronger password
|
||
SPC i p 3 | insert password for paranoids
|
||
SPC i p p | insert a phonetically easy password
|
||
SPC i p n | insert a numerical password
|
||
SPC i u | Search for Unicode characters and insert them into the active
|
||
buffer.
|
||
SPC i U 1 | insert UUIDv1 (use universal argument to insert with CID
|
||
format)
|
||
SPC i U 4 | insert UUIDv4 (use universal argument to insert with CID
|
||
format)
|
||
SPC i U U | insert UUIDv4 (use universal argument to insert with CID
|
||
format)
|
||
<
|
||
|
||
>
|
||
<
|
||
NOTE: You can specify the number of password characters using a prefix
|
||
argument (i.e. `10 SPC i p 1` will generate a 10 character simple password).
|
||
|
||
EXPAND REGIONS OF TEXT
|
||
|
||
Key bindings available in visual mode:
|
||
>
|
||
Key bindings | Descriptions
|
||
------------ | -------------------------------------------------
|
||
v | expand visual selection of text to larger region
|
||
V | shrink visual selection of text to smaller region
|
||
<
|
||
INCREASE/DECREASE NUMBERS
|
||
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | ------------------------------------------------
|
||
SPC n + | increase the number and initiate transient state
|
||
SPC n - | decrease the number and initiate transient state
|
||
<
|
||
In transient state:
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------- | -------------------------------------------
|
||
+ | increase the number under the cursor by one
|
||
- | decrease the number under the cursor by one
|
||
Any other key | leave the transient state
|
||
<
|
||
Tip: You can set the step (1 by default) by using a prefix argument (i.e. `10
|
||
SPC n +` will add 10 to the number under the cursor).
|
||
|
||
COPY AND PASTE
|
||
|
||
If `has('unnamedplus')`, the register used by `<Leader> y` is `+`, otherwise
|
||
it is `*`. Read `:h registers` for more info about other registers.
|
||
>
|
||
Key | Descriptions
|
||
------------ | --------------------------------------------
|
||
<Leader> y | Copy selected text to system clipboard
|
||
<Leader> p | Paste text from system clipboard after here
|
||
<Leader> P | Paste text from system clipboard before here
|
||
<Leader> Y | Copy selected text to pastebin
|
||
<
|
||
To change the command of clipboard, you need to use bootstrap after function:
|
||
>
|
||
" for example, to use tmux clipboard:
|
||
function! myspacevim#after() abort
|
||
call clipboard#set('tmux load-buffer -', 'tmux save-buffer -')
|
||
endfunction
|
||
<
|
||
|
||
within the runtime log (`SPC h L`), the clipboard command will be displayed:
|
||
|
||
|
||
>
|
||
[ clipboard ] [11:00:35] [670.246] [ Info ] yank_cmd is:'tmux load-buffer
|
||
-'
|
||
[ clipboard ] [11:00:35] [670.246] [ Info ] paste_cmd is:'tmux save-buffer
|
||
-'
|
||
<
|
||
|
||
>
|
||
|
||
<
|
||
The `<Leader> Y` key binding will copy selected text to a pastebin server. It
|
||
requires `curl` in your `$PATH`. The default command is:
|
||
>
|
||
curl -s -F "content=<-" http://dpaste.com/api/v2/
|
||
<
|
||
This command will read stdin and copy it to dpaste server. It is same as:
|
||
>
|
||
echo "selected text" | curl -s -F "content=<-" http://dpaste.com/api/v2/
|
||
<
|
||
|
||
COMMENTING
|
||
|
||
Comments are handled by nerdcommenter, it’s bound to the following keys.
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | -------------------------------------------------------
|
||
SPC ; | comment operator
|
||
SPC c a | switch to the alternative set of delimiters
|
||
SPC c h | hide/show comments
|
||
SPC c l | toggle line comments
|
||
SPC c L | comment lines
|
||
SPC c u | uncomment lines
|
||
SPC c p | toggle paragraph comments
|
||
SPC c P | comment paragraphs
|
||
SPC c s | comment with pretty layout
|
||
SPC c t | toggle comment on line
|
||
SPC c T | comment the line under the cursor
|
||
SPC c y | toggle comment and yank
|
||
SPC c Y | yank and comment
|
||
SPC c $ | comment current line from cursor to the end of the line
|
||
<
|
||
Tip: `SPC ;` will start operator mode, in this mode, you can use a motion
|
||
command to comment lines. For example, `SPC ; 4 j` will comment the current
|
||
line and the following 4 lines.
|
||
|
||
UNDO TREE
|
||
|
||
Undo tree visualizes the undo history and makes it easier to browse and switch
|
||
between different undo branches. The default key binding is `F7`. If `+python`
|
||
or `+python3` is enabled, mundo will be loaded, otherwise undotree will be
|
||
loaded.
|
||
|
||
Key bindings within undo tree windows:
|
||
>
|
||
key bindings | description
|
||
--------------- | -------------------
|
||
G | move bottom
|
||
J | move older write
|
||
K | move newer write
|
||
N | previous match
|
||
P | play to
|
||
<2-LeftMouse> | mouse click
|
||
/ | search
|
||
<CR> | preview
|
||
d | diff
|
||
<down> | move older
|
||
<up> | move newer
|
||
i | toggle inline
|
||
j | move older
|
||
k | move newer
|
||
n | next match
|
||
o | preview
|
||
p | diff current buffer
|
||
q | quit
|
||
r | diff
|
||
gg | move top
|
||
? | toggle help
|
||
<
|
||
MULTI-ENCODINGS
|
||
|
||
SpaceVim uses utf-8 as the default encoding. There are four options for this:
|
||
|
||
1. fileencodings (fencs): ucs-bom,utf-8,default,latin1
|
||
2. fileencoding (fenc): utf-8
|
||
3. encoding (enc): utf-8
|
||
4. termencoding (tenc): utf-8 (only supported in Vim)
|
||
|
||
To fix a messy display: `SPC e a` is the mapping to auto detect the file
|
||
encoding. After detecting the file encoding, you can run the command below to
|
||
fix it:
|
||
>
|
||
set enc=utf-8
|
||
write
|
||
<
|
||
|
||
==============================================================================
|
||
ERROR HANDLING *SpaceVim-usage-error-handling*
|
||
|
||
The |SpaceVim-layers-checkers| and |SpaceVim-layers-lsp| provide error
|
||
handling features. The checkers layer uses
|
||
neomake(https://github.com/neomake/neomake) by default. The syntax checking is
|
||
only performed at save time by default.
|
||
|
||
Error management mappings (start with e):
|
||
>
|
||
Mappings | Descriptions
|
||
--------- | --------------------------------------------------
|
||
SPC t s | toggle syntax checker
|
||
SPC e c | clear all errors
|
||
SPC e h | describe a syntax checker
|
||
SPC e l | toggle the display of the list of errors/warnings
|
||
SPC e n | go to the next error
|
||
SPC e p | go to the previous error
|
||
SPC e v | verify syntax checker setup
|
||
SPC e . | error transient state
|
||
<
|
||
The next/previous error mappings and the error transient state can be used to
|
||
browse errors from syntax checkers as well as errors from location list
|
||
buffers, and indeed anything that supports Vim's location list. This includes
|
||
for example search results that have been saved to a location list buffer.
|
||
|
||
Custom sign symbol:
|
||
>
|
||
Symbol | Descriptions | Custom options
|
||
------ | ------------ | ----------------
|
||
✖ | Error | error_symbol
|
||
➤ | warning | warning_symbol
|
||
ⓘ | Info | info_symbol
|
||
<
|
||
QUICKFIX LIST NAVIGATION
|
||
|
||
>
|
||
Mappings | Descriptions
|
||
-------------- | --------------------------------------
|
||
<Leader> q l | Open quickfix list window
|
||
<Leader> q c | clear quickfix list
|
||
<Leader> q n | jump to next item in quickfix list
|
||
<Leader> q p | jump to previous item in quickfix list
|
||
<
|
||
|
||
==============================================================================
|
||
FILE TREE *SpaceVim-usage-file-tree*
|
||
|
||
The default filetree is `nerdtree`, and the default key binding is `<F3>`.
|
||
SpaceVim also provides `SPC f t` and `SPC f T` to open the file tree.
|
||
|
||
The option |SpaceVim-options-filemanager| can be used to change file manager
|
||
plugin. For example:
|
||
>
|
||
[options]
|
||
# file manager plugins supported in SpaceVim:
|
||
# - nerdtree (default)
|
||
# - vimfiler: you need to build the vimproc.vim in bundle/vimproc.vim
|
||
directory
|
||
# - defx: requires +py3 feature
|
||
# - neo-tree: require neovim 0.7.0
|
||
filemanager = "nerdtree"
|
||
<
|
||
|
||
VCS integration is also supported, there will be a column status, this feature
|
||
may make filetree slow, so it is not enabled by default. To enable this
|
||
feature, add the layer option `enable_filetree_gitstatus = true` to core
|
||
layer.
|
||
>
|
||
[[layers]]
|
||
name = 'core'
|
||
enable_filetree_gitstatus = true
|
||
<
|
||
|
||
There is also an option to configure whether open filetree when startup. This
|
||
is enabled by defaul, To disable this feature, you can set the
|
||
|SpaceVim-options-enable_vimfiler_welcome| to false:
|
||
>
|
||
[options]
|
||
enable_vimfiler_welcome = false
|
||
<
|
||
|
||
There is also an option to configure the side of the file tree, by default it
|
||
is right. To move the file tree to the left, you can use the option:
|
||
|SpaceVim-options-filetree_direction|.
|
||
>
|
||
[options]
|
||
filetree_direction = "left"
|
||
<
|
||
|
||
FILE TREE NAVIGATION
|
||
|
||
Navigation is centered on the `hjkl` keys with the hope of providing a fast
|
||
navigation experience like in vifm(https://github.com/vifm):
|
||
>
|
||
Key Bindings | Descriptions
|
||
--------------------- | -------------------------------------------------
|
||
<F3> | Toggle file explorer
|
||
SPC f t | Toggle file explorer
|
||
SPC f T | Show file explorer
|
||
<
|
||
Key bindings in filetree windows:
|
||
>
|
||
<Left> / h | go to parent node and collapse expanded directory
|
||
<Down> / j | select next file or directory
|
||
<Up> / k | select previous file or directory
|
||
<Right> / l | open selected file or expand directory
|
||
<Enter> | open file or switch to directory
|
||
N | Create new file under cursor
|
||
r | Rename the file under cursor
|
||
d | Delete the file under cursor
|
||
K | Create new directory under cursor
|
||
y y | Copy file full path to system clipboard
|
||
y Y | Copy file to system clipboard
|
||
P | Paste file to the position under the cursor
|
||
. | Toggle hidden files
|
||
s v | Split edit
|
||
s g | Vertical split edit
|
||
p | Preview
|
||
i | Switch to directory history
|
||
v | Quick look
|
||
g x | Execute with vimfiler associated
|
||
' | Toggle mark current line
|
||
V | Clear all marks
|
||
> | increase filetree screenwidth
|
||
< | decrease filetree screenwidth
|
||
<Home> | Jump to first line
|
||
<End> | Jump to last line
|
||
Ctrl-h | Switch to project root directory
|
||
Ctrl-r | Redraw
|
||
<
|
||
|
||
OPEN FILE WITH FILE TREE.
|
||
|
||
If only one file buffer is opened, a file is opened in the active window,
|
||
otherwise we need to use vim-choosewin to select a window to open the file.
|
||
>
|
||
Key Bindings | Descriptions
|
||
--------------- | ----------------------------------------
|
||
l / <Enter> | open file in one window
|
||
s g | open file in a vertically split window
|
||
s v | open file in a horizontally split window
|
||
<
|
||
OVERRIDE FILETREE KEY BINDINGS
|
||
|
||
If you want to override the default key bindings in filetree windows. You can
|
||
use User autocmd in bootstrap function. for examples:
|
||
>
|
||
function! myspacevim#before() abort
|
||
autocmd User NerdTreeInit
|
||
\ nnoremap <silent><buffer> <CR> :<C-u>call
|
||
\ g:NERDTreeKeyMap.Invoke('o')<CR>
|
||
endfunction
|
||
<
|
||
|
||
Here is all the autocmd for filetree:
|
||
|
||
nerdtree: `User NerdTreeInit`
|
||
defx: `User DefxInit`
|
||
vimfiler: `User VimfilerInit`
|
||
|
||
==============================================================================
|
||
TOGGLE UI *SpaceVim-usage-toggle-ui*
|
||
|
||
Some UI indicators can be toggled on and off (toggles start with t and T):
|
||
>
|
||
Key Bindings | Descriptions
|
||
----------------- | -----------------------------------------
|
||
SPC t 8 | highlight characters past the 80th column
|
||
SPC t a | toggle autocomplete
|
||
SPC t f | display the fill column
|
||
SPC t h h | toggle highlight of the current line
|
||
SPC t h i | toggle highlight indentation levels
|
||
SPC t h c | toggle highlight current column
|
||
SPC t h s | toggle syntax highlighting
|
||
SPC t i | toggle indentation guide at point
|
||
SPC t n | toggle line numbers
|
||
SPC t b | toggle background
|
||
SPC t c | toggle conceal
|
||
SPC t p | toggle paste mode
|
||
SPC t P | toggle auto parens mode
|
||
SPC t t | open tabs manager
|
||
SPC T ~ | display ~ in the fringe on empty lines
|
||
SPC T F / F11 | toggle frame fullscreen
|
||
SPC T f | toggle display of the fringe
|
||
SPC T m | toggle menu bar
|
||
SPC T t | toggle tool bar
|
||
<
|
||
|
||
==============================================================================
|
||
ALTERNATE FILE *SpaceVim-usage-alternate-file*
|
||
|
||
SpaceVim provides a built-in alternate file manager, the command is `:A`.
|
||
|
||
To use this feature, you can create a `.project_alt.json` file in the root of
|
||
your project. for example:
|
||
>
|
||
{
|
||
"autoload/SpaceVim/layers/lang/*.vim" :
|
||
{
|
||
"doc" : "docs/layers/lang/{}.md"
|
||
},
|
||
}
|
||
<
|
||
after adding this configuration, when edit the source file
|
||
`autoload/SpaceVim/layers/lang/java.vim`, you can use `:A doc` switch to
|
||
`docs/layers/lang/java.md`
|
||
|
||
==============================================================================
|
||
BUFFERS-AND-FILES *SpaceVim-usage-buffers-and-files*
|
||
|
||
All buffer related key bindings are start with `SPC b`, and all files related
|
||
key bindings are start with `SPC f`.
|
||
BUFFERS MANIPULATION KEY BINDINGS
|
||
|
||
Buffer manipulation commands (start with `b`):
|
||
>
|
||
Key Bindings | Descriptions
|
||
-------------------| ------------------------------------------------
|
||
SPC <Tab> | switch to alternate buffer in the current window
|
||
SPC b . | buffer transient state
|
||
SPC b b | switch to a buffer (need fuzzy finder layer)
|
||
SPC b d | kill the current buffer
|
||
SPC b D | kill a visible buffer using vim-choosewin
|
||
SPC b Ctrl-d | kill other buffers
|
||
SPC b Ctrl-Shift-d | kill buffers using a regular expression
|
||
SPC b e | erase the content of the buffer (ask for confirmation)
|
||
SPC b n | switch to next buffer avoiding special buffers
|
||
SPC b m | open Messages buffer
|
||
SPC b o | kill all saved buffers and windows
|
||
SPC b p | switch to previous buffer avoiding special buffers
|
||
SPC b P | copy clipboard and replace buffer
|
||
SPC b R | revert the current buffer (reload from disk)
|
||
SPC b s | switch to the scratch buffer (create it if needed)
|
||
SPC b w | toggle read-only (writable state)
|
||
SPC b Y | copy whole buffer to clipboard
|
||
<
|
||
|
||
CREATE A NEW EMPTY BUFFER
|
||
|
||
The following key bindings can be used to create new buffer.
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | -----------------------------------------------------
|
||
SPC b N h | create new empty buffer in a new window on the left
|
||
SPC b N j | create new empty buffer in a new window at the bottom
|
||
SPC b N k | create new empty buffer in a new window above
|
||
SPC b N l | create new empty buffer in a new window below
|
||
SPC b N n | create new empty buffer in current window
|
||
<
|
||
SPECIAL BUFFERS
|
||
|
||
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.
|
||
|
||
FILE MANIPULATION KEY BINDINGS
|
||
|
||
Files manipulation commands (start with `f`):
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | ---------------------------------------------------------
|
||
SPC f / | Find files with find or fd command
|
||
SPC f b | go to file bookmarks
|
||
SPC f C d | convert file from unix to dos encoding
|
||
SPC f C u | convert file from dos to unix encoding
|
||
SPC f D | delete a file and the associated buffer with confirmation
|
||
SPC f W | save a file with elevated privileges (sudo layer)
|
||
SPC f f | fuzzy find files in buffer directory
|
||
SPC f F | fuzzy find cursor file in buffer directory
|
||
SPC f o | Find current file in file tree
|
||
SPC f R | rename the current file
|
||
SPC f s | save a file
|
||
SPC f a | save as new file name
|
||
SPC f S | save all files
|
||
SPC f r | open a recent file
|
||
SPC f t | toggle file tree side bar
|
||
SPC f T | show file tree side bar
|
||
SPC f d | toggle disk manager in Windows OS
|
||
SPC f y | show and copy current file absolute path in the cmdline
|
||
SPC f Y | show and copy remote url of current file
|
||
<
|
||
NOTE: If you are using Windows, you need to install
|
||
findutils(https://www.gnu.org/software/findutils/) or
|
||
fd(https://github.com/sharkdp/fd). If you are using
|
||
scoop(https://github.com/lukesampson/scoop) to install packages, commands in
|
||
`C:\WINDOWS\system32` will override the User `PATH`, so you need to put the
|
||
scoop binary path before `C:\WINDOWS\system32` in `PATH`.
|
||
|
||
After pressing `SPC f /`, the find window will be opened. It is going to run
|
||
`find` or `fd` command asynchronously. By default, `find` is the default tool,
|
||
you can use `ctrl-e` to switch tools.
|
||
|
||
To change the default file searching tool, you can use `file_searching_tools`
|
||
in the `[options]` section. It is `[]` by default.
|
||
>
|
||
[options]
|
||
file_searching_tools = ['find', 'find -not -iwholename "*.git*" ']
|
||
<
|
||
|
||
The first item is the name of the tool, the second one is the default
|
||
searching command.
|
||
|
||
VIM AND SPACEVIM FILES
|
||
|
||
Convenient key bindings are located under the prefix `SPC f v` to quickly
|
||
navigate between Vim and SpaceVim specific files.
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | ------------------------------------------------
|
||
SPC f v v | display and copy SpaceVim version
|
||
SPC f v d | open SpaceVim custom configuration file
|
||
SPC f v s | list all loaded vim scripts, like :scriptnames
|
||
<
|
||
|
||
==============================================================================
|
||
COMMAND-LINE-MODE *SpaceVim-usage-command-line-mode*
|
||
|
||
After pressing `:`, you can switch to command line mode, here is a list of key
|
||
bindings can be used in command line mode:
|
||
>
|
||
Key bindings Descriptions
|
||
Ctrl-a move cursor to beginning
|
||
Ctrl-b Move cursor backward in command line
|
||
Ctrl-f Move cursor forward in command line
|
||
Ctrl-w delete a whole word
|
||
Ctrl-u remove all text before cursor
|
||
Ctrl-k remove all text after cursor
|
||
Ctrl-c/Esc cancel command line mode
|
||
Tab next item in popup menu
|
||
Shift-Tab previous item in popup menu
|
||
<
|
||
|
||
==============================================================================
|
||
CUSTOM_PLUGINS *SpaceVim-usage-custom_plugins*
|
||
|
||
If you want to add custom plugin, use `custom_plugins` section. For example:
|
||
if you want to add https://github.com/vimwiki/vimwiki, add following code into
|
||
your configuration file.
|
||
>
|
||
[[custom_plugins]]
|
||
repo = 'vimwiki/vimwiki'
|
||
merged = false
|
||
<
|
||
Use one custom_plugins for each plugin, example:
|
||
>
|
||
[[custom_plugins]]
|
||
repo = 'vimwiki/vimwiki'
|
||
merged = false
|
||
[[custom_plugins]]
|
||
repo = 'wsdjeg/vim-j'
|
||
merged = false
|
||
<
|
||
|
||
==============================================================================
|
||
REPL *SpaceVim-usage-repl*
|
||
|
||
In language layer, REPL key bindings has been added. To start a REPL process,
|
||
the default key binding is `SPC l s i` . Key bindings for sending code to REPL
|
||
process only support following types: `line`, `selection` and `buffer` . All
|
||
of the key binding is mapped to function `SpaceVim#plugins#repl#send`. The
|
||
first argument is {type}. To send raw string, use `raw` as type, for example:
|
||
>
|
||
call SpaceVim#plugins#repl#send('raw', 'print("hello world!")')
|
||
<
|
||
|
||
>
|
||
<
|
||
|
||
==============================================================================
|
||
SEARCH-AND-REPLACE *SpaceVim-usage-search-and-replace*
|
||
|
||
This section document how to find and replace text in SpaceVim.
|
||
|
||
SEARCHING WITH AN EXTERNAL TOOL
|
||
|
||
SpaceVim can be interfaced with different searching tools like:
|
||
1. rg - ripgrep
|
||
2. ag - the silver searcher
|
||
3. pt - the platinum searcher
|
||
4. ack
|
||
5. grep
|
||
The search commands in SpaceVim are organized under the `SPC s` prefix with
|
||
the next key being the tool to use and the last key is the scope. For
|
||
instance, `SPC s a b` will search in all opened buffers using `ag`.
|
||
|
||
If the `<scope>` is uppercase then the current word under the cursor is used
|
||
as default input for the search. For instance, `SPC s a B` will search for the
|
||
word under the cursor.
|
||
|
||
If the tool key is omitted then a default tool will be automatically selected
|
||
for the search. This tool corresponds to the first tool found on the system
|
||
from the list `search_tools`, the default order is `['rg', 'ag', 'pt', 'ack',
|
||
'grep', 'findstr', 'git']`. For instance `SPC s b` will search in the opened
|
||
buffers using `pt` if `rg` and `ag` have not been found on the system.
|
||
|
||
The tool keys are:
|
||
>
|
||
Tool | Key
|
||
---------|-----
|
||
ag | a
|
||
grep | g
|
||
git grep | G
|
||
ack | k
|
||
rg | r
|
||
pt | t
|
||
<
|
||
The available scopes and corresponding keys are:
|
||
>
|
||
Scope | Key
|
||
---------------------------|-----
|
||
opened buffers | b
|
||
buffer directory | d
|
||
files in a given directory | f
|
||
current project | p
|
||
<
|
||
Instead of using flygrep to search text. SpaceVim also provides a general
|
||
async searcher. The key binding is `SPC s j`, an input promote will be opened.
|
||
After inserting text and press enter. searching results will be displayed in
|
||
quickfix window.
|
||
|
||
==============================================================================
|
||
TASKS *SpaceVim-usage-tasks*
|
||
|
||
To integrate with external tools, SpaceVim introduced a task manager system,
|
||
which is similar to VSCode's tasks-manager. There are two kinds of task
|
||
configurations file:
|
||
|
||
`~/.SpaceVim.d/tasks.toml`: global tasks configuration
|
||
`.SpaceVim.d/tasks.toml`: project local tasks configuration
|
||
|
||
The tasks defined in the global tasks configuration can be overrided by
|
||
project local tasks configuration.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC p t l list all available tasks
|
||
SPC p t e edit project tesk
|
||
SPC p t r pick tesk to run
|
||
SPC p t c clear tasks
|
||
<
|
||
|
||
CUSTOM TASK
|
||
This is a basic task configuration for running `echo hello world`, and print
|
||
the results to the runner window.
|
||
>
|
||
[my-task]
|
||
command = 'echo'
|
||
args = ['hello world']
|
||
<
|
||
|
||
To run the task in the background, you need to set `isBackground` to `true`:
|
||
>
|
||
[my-task]
|
||
command = 'echo'
|
||
args = ['hello world']
|
||
isBackground = true
|
||
<
|
||
|
||
The following task properties are available:
|
||
|
||
1. `command`: The actual command to execute.
|
||
2. `args`: The arguments passed to the command, it should be a list of
|
||
strings and may be omitted.
|
||
3. `options`: Override the defaults for `cwd`,`env` or `shell`.
|
||
4. `isBackground`: Specifies whether the task should run in the background.
|
||
by default, it is `false`.
|
||
5. `description`: Short description of the task
|
||
6. `problemMatcher`: Problems matcher of the task
|
||
|
||
Note: When a new task is executed, it will kill the previous task. If you want
|
||
to keep the task, run it in background by setting `isBackground` to `true`.
|
||
|
||
SpaceVim supports variable substitution in the task properties, The following
|
||
predefined variables are supported:
|
||
|
||
`{workspaceFolder}`: The project's root directory
|
||
`{workspaceFolderBasename}`: The name of current project's root directory
|
||
`{file}`: The path of current file
|
||
`{relativeFile}`: The current file relative to project root
|
||
`{relativeFileDirname}`: The current file's dirname relative to
|
||
workspaceFolder
|
||
`{fileBasename}`: The current file's basename
|
||
`{fileBasenameNoExtension}`: The current file's basename without file
|
||
extension
|
||
`{fileDirname}`: The current file's dirname
|
||
`{fileExtname}`: The current file's extension
|
||
`{cwd}`: The task runner's current working directory on startup
|
||
`{lineNumber}`: The current selected line number in the active file
|
||
|
||
For example: Supposing that you have the following requirements:
|
||
|
||
A file located at `/home/your-username/your-project/folder/file.ext` opened in
|
||
your editor; The directory `/home/your-username/your-project` opened as your
|
||
root workspace. So you will have the following values for each variable:
|
||
|
||
`{workspaceFolder}`: `/home/your-username/your-project/`
|
||
`{workspaceFolderBasename}`: `your-project`
|
||
`{file}`: `/home/your-username/your-project/folder/file.ext`
|
||
`{relativeFile}`: `folder/file.ext`
|
||
`{relativeFileDirname}`: `folder/`
|
||
`{fileBasename}`: `file.ext`
|
||
`{fileBasenameNoExtension}`: `file`
|
||
`{fileDirname}`: `/home/your-username/your-project/folder/`
|
||
`{fileExtname}`: `.ext`
|
||
`{lineNumber}`: line number of the cursor
|
||
|
||
TASK PROBLEMS MATCHER
|
||
|
||
Problem matcher is used to capture the message in the task output and show a
|
||
corresponding problem in quickfix windows.
|
||
|
||
`problemMatcher` supports `errorformat` and `pattern` properties.
|
||
|
||
If the `errorformat` property is not defined, the `&errorformat` option will
|
||
be used.
|
||
>
|
||
[test_problemMatcher]
|
||
command = "echo"
|
||
args = ['.SpaceVim.d/tasks.toml:6:1 test error message']
|
||
isBackground = true
|
||
[test_problemMatcher.problemMatcher]
|
||
useStdout = true
|
||
errorformat = '%f:%l:%c\ %m'
|
||
<
|
||
|
||
If `pattern` is defined, the `errorformat` option will be ignored. Here is an
|
||
example:
|
||
>
|
||
[test_regexp]
|
||
command = "echo"
|
||
args = ['.SpaceVim.d/tasks.toml:12:1 test error message']
|
||
isBackground = true
|
||
[test_regexp.problemMatcher]
|
||
useStdout = true
|
||
[test_regexp.problemMatcher.pattern]
|
||
regexp = '\(.*\):\(\d\+\):\(\d\+\)\s\(\S.*\)'
|
||
file = 1
|
||
line = 2
|
||
column = 3
|
||
#severity = 4
|
||
message = 4
|
||
<
|
||
|
||
TASK AUTO-DETECTION
|
||
|
||
Currently, SpaceVim can auto-detect tasks for npm. the tasks manager will
|
||
parse the `package.json` file for npm packages.
|
||
|
||
TASK PROVIDER
|
||
|
||
Some tasks can be automatically detected by the task provider. For example, a
|
||
Task Provider could check if there is a specific build file, such as
|
||
`package.json`, and create npm tasks.
|
||
|
||
To build a task provider, you need to use the Bootstrap function. The task
|
||
provider should be a vim function that returns a task object.
|
||
|
||
here is an example for building a task provider.
|
||
|
||
|
||
>
|
||
function! s:make_tasks() abort
|
||
if filereadable('Makefile')
|
||
let subcmds = filter(readfile('Makefile', ''), "v:val=~#'^.PHONY'")
|
||
let conf = {}
|
||
for subcmd in subcmds
|
||
let commands = split(subcmd)[1:]
|
||
for cmd in commands
|
||
call extend(conf, {
|
||
\ cmd : {
|
||
\ 'command': 'make',
|
||
\ 'args' : [cmd],
|
||
\ 'isDetected' : 1,
|
||
\ 'detectedName' : 'make:'
|
||
\ }
|
||
\ })
|
||
endfor
|
||
endfor
|
||
return conf
|
||
else
|
||
return {}
|
||
endif
|
||
endfunction
|
||
call SpaceVim#plugins#tasks#reg_provider(function('s:make_tasks'))
|
||
<
|
||
|
||
With the above configuration, you will see the following tasks in the SpaceVim
|
||
repo:
|
||
|
||
==============================================================================
|
||
UNDO-TREE *SpaceVim-usage-undotree*
|
||
|
||
Undo tree visualizes the undo history and makes it easier to browse and switch
|
||
between different undo branches.The default key binding is `F7`. If `+python`
|
||
or `+python3` is enabled, `vim-mundo` will be used, otherwise `undotree` will
|
||
be used.
|
||
|
||
Key bindings within undo tree windows:
|
||
>
|
||
key bindings description
|
||
`G` move bottom
|
||
`J` move older write
|
||
`K` move newer write
|
||
`N` previous match
|
||
`P` play to
|
||
`<2-LeftMouse>` mouse click
|
||
`/` search
|
||
`<CR>` preview
|
||
`d` diff
|
||
`<down>` move older
|
||
`<up>` move newer
|
||
`i` toggle inline
|
||
`j` move older
|
||
`k` move newer
|
||
`n` next match
|
||
`o` preview
|
||
`p` diff current buffer
|
||
`q` quit
|
||
`r` diff
|
||
`gg` move top
|
||
`?` toggle help
|
||
<
|
||
|
||
==============================================================================
|
||
WINDOWS-AND-TABS *SpaceVim-usage-windows-and-tabs*
|
||
|
||
Window manager key bindings can only be used in normal mode. The default
|
||
leader `[WIN]` is `s`, you can change it via `windows_leader` in the
|
||
`[options]` section:
|
||
>
|
||
[options]
|
||
windows_leader = "s"
|
||
<
|
||
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | --------------------------------------------------
|
||
q | Smart buffer close
|
||
WIN v | :split
|
||
WIN V | Split with previous buffer
|
||
WIN g | :vsplit
|
||
WIN G | Vertically split with previous buffer
|
||
WIN t | Open new tab (:tabnew)
|
||
WIN o | Close other windows (:only)
|
||
WIN x | Remove buffer, leave blank window
|
||
WIN q | Remove current buffer
|
||
WIN Q | Close current buffer (:close)
|
||
Shift-Tab | Switch to alternate window (switch back and forth)
|
||
<
|
||
SpaceVim has mapped normal `q` (record a macro) as smart buffer close, and
|
||
record a macro (vim's `q`) has been mapped to `<Leader> q r`, if you want to
|
||
disable this feature, you can use `vimcompatible` mode.
|
||
|
||
GENERAL EDITOR WINDOWS
|
||
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | --------------------------------
|
||
<F2> | Toggle tagbar
|
||
<F3> | Toggle Vimfiler
|
||
Ctrl-Down | Move to split below ( Ctrl-w j )
|
||
Ctrl-Up | Move to upper split ( Ctrl-w k )
|
||
Ctrl-Left | Move to left split ( Ctrl-w h )
|
||
Ctrl-Right | Move to right split ( Ctrl-w l )
|
||
<
|
||
WINDOW MANIPULATION KEY BINDINGS
|
||
|
||
Every window has a number displayed at the start of the statusline and can be
|
||
quickly accessed using `SPC number`.
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | ---------------------
|
||
SPC 1 | go to window number 1
|
||
SPC 2 | go to window number 2
|
||
SPC 3 | go to window number 3
|
||
SPC 4 | go to window number 4
|
||
SPC 5 | go to window number 5
|
||
SPC 6 | go to window number 6
|
||
SPC 7 | go to window number 7
|
||
SPC 8 | go to window number 8
|
||
SPC 9 | go to window number 9
|
||
<
|
||
Windows manipulation commands (start with `w`):
|
||
>
|
||
Key Bindings | Descriptions
|
||
--------------------- | --------------------------------------------------
|
||
SPC w . | windows transient state
|
||
SPC w <Tab> | switch to alternate window in the current frame
|
||
SPC w = | balance split windows
|
||
SPC w c | Distraction-free reading current window
|
||
SPC w C | Distraction-free reading other windows
|
||
SPC w d | delete a window
|
||
SPC w D | delete another window using vim-choosewin
|
||
SPC w f | toggle follow mode
|
||
SPC w F | create new tab
|
||
SPC w h | move to window on the left
|
||
SPC w H | move window to the left
|
||
SPC w j | move to window below
|
||
SPC w J | move window to the bottom
|
||
SPC w k | move to window above
|
||
SPC w K | move window to the top
|
||
SPC w l | move to window on the right
|
||
SPC w L | move window to the right
|
||
SPC w m | maximize/minimize a window
|
||
SPC w M | swap windows using vim-choosewin
|
||
SPC w o | cycle and focus between tabs
|
||
SPC w r | rotate windows forward
|
||
SPC w R | rotate windows backward
|
||
SPC w s / SPC w - | horizontal split
|
||
SPC w S | horizontal split and focus new window
|
||
SPC w u | undo window layout
|
||
SPC w U | redo window layout
|
||
SPC w v / SPC w / | vertical split
|
||
SPC w V | vertical split and focus new window
|
||
SPC w w | cycle and focus between windows
|
||
SPC w W | select window using vim-choosewin
|
||
SPC w x | exchange current window with next one
|
||
<
|
||
|
||
==============================================================================
|
||
PLUGINS *SpaceVim-plugins*
|
||
|
||
This is a list of builtin plugins.
|
||
|
||
==============================================================================
|
||
MAPPING GUIDE *SpaceVim-plugins-mapping-guide*
|
||
|
||
The mapping guide windows will be opened each time the prefix key is pressed
|
||
in normal/visual mode. It will list all available key bindings and the short
|
||
descriptions. The prefix can be `[SPC]`, `[WIN]` or `<Leader>`.
|
||
|
||
The prefixes are mapped to the following key bindings by default:
|
||
>
|
||
Prefix | Custom options and default values | Descriptions
|
||
---------------------------------------------------------------------
|
||
[SPC]` | NONE / `<Space>` | default mapping prefix
|
||
[WIN]` | `windows_leader` / `s` | window mapping prefix
|
||
<Leader>` | default vim leader | default leader prefix
|
||
<
|
||
|
||
The default value of `<Leader>` is `\`, if you want to change this key, you
|
||
need to use the bootstrap function. For example, to use `,` as the `<Leader>`
|
||
key:
|
||
>
|
||
function! myspacevim#before() abort
|
||
let g:mapleader = ','
|
||
endfunction
|
||
<
|
||
|
||
NOTE: When modifying the variable `g:mapleader` in a function. you can not
|
||
omit the variable's scope. Because the default scope of a variable in function
|
||
is `l:`. It is different from what you see in vim help |mapleader|.
|
||
|
||
By default the guide buffer will be displayed 1000ms after the keys being
|
||
pressed. You can change the delay by adding vim option `'timeoutlen'` to your
|
||
bootstrap function.
|
||
|
||
For example, after pressing `<Space>` in normal mode, you will see all the key
|
||
bindings start with `SPC` in mapping guide windows. you can type `b` for all
|
||
the buffer mappings, `p` for project mappings, etc.
|
||
|
||
After pressing `Ctrl-h` in guide buffer, you will get paging and help info in
|
||
the statusline.
|
||
>
|
||
| Keys | Descriptions |
|
||
| ---- | ----------------------------- |
|
||
| `u` | undo pressing |
|
||
| `n` | next page of guide buffer |
|
||
| `p` | previous page of guide buffer |
|
||
<
|
||
Use `SpaceVim#custom#SPC()` to define custom SPC mappings. For example:
|
||
>
|
||
call SpaceVim#custom#SPC('nnoremap',
|
||
\ ['f', 't'],
|
||
\ 'echom "hello world"', 'test custom SPC', 1)
|
||
<
|
||
|
||
The first parameter sets the type of shortcut key, which can be `nnoremap` or
|
||
`nmap`, the second parameter is a list of keys, and the third parameter is an
|
||
ex command or key binding, depending on whether the last parameter is true.
|
||
The fourth parameter is a short description of this custom key binding.
|
||
|
||
FUZZY FIND KEY BINDINGS
|
||
|
||
It is possible to search for specific key bindings by pressing `?` in the root
|
||
of the guide buffer.
|
||
|
||
To narrow the list down, just insert the mapping keys or descriptions of what
|
||
mappings you want, the fuzzy finder will get the mappings.
|
||
|
||
Then use `<Tab>` or `<Up>` and `<Down>` to select the mapping, press `<Enter>`
|
||
to execute that command.
|
||
|
||
MAPPING GUIDE THEME
|
||
|
||
The default mapping guide theme is `leaderguide`, which is same as
|
||
vim-leaderguide(https://github.com/hecal3/vim-leader-guide), there is another
|
||
available theme called `whichkey`. To set the mapping guide theme, use
|
||
following snippet:
|
||
>
|
||
[options]
|
||
# the value can be `leaderguide` or `whichkey`
|
||
leader_guide_theme = 'whichkey'
|
||
<
|
||
|
||
==============================================================================
|
||
SYMBOL HIGHLIGHTER *SpaceVim-plugins-symbol-highlighter*
|
||
|
||
SpaceVim supports highlighting current symbol on demand and add a transient
|
||
state to easily navigate and rename these symbols.
|
||
|
||
It is also possible to change the range of the navigation on the fly, the
|
||
available ranges are:
|
||
|
||
1. buffer: the whole buffer
|
||
2. function: in current function
|
||
3. visible area: in current visible area of the buffer
|
||
|
||
The default key binding to Highlight the symbol under the cursor is `SPC s h`.
|
||
|
||
Navigation between the highlighted symbols can be done with the commands:
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------ | -------------------------------------------
|
||
* | highlight current symbol and jump forwards
|
||
# | highlight current symbol and jump backwards
|
||
SPC s e | start iedit mode on current symbol
|
||
SPC s h | highlight current symbol within default range
|
||
SPC s H | highlight last symbol within default range
|
||
<
|
||
In highlight symbol transient state, the following key bindings can be used:
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------- | -----------------------------------
|
||
e | start iedit mode
|
||
n | go to next occurrence
|
||
N / p | go to previous occurrence
|
||
b | search occurrence in all buffers
|
||
/ | search occurrence in whole project
|
||
<Tab> | toggle highlight current occurrence
|
||
r | change range
|
||
R | go to home occurrence
|
||
Any other key | leave the navigation transient state
|
||
<
|
||
|
||
==============================================================================
|
||
ALTERNATE *SpaceVim-plugins-alternate*
|
||
|
||
To manage the alternate file of the project, you need to create a
|
||
`.project_alt.json` file in the root of your project. Then you can use the
|
||
command `:A` to jump to the alternate file of current file. You can also
|
||
specific the type of alternate file, for example `:A doc`. With a bang `:A!`,
|
||
SpaceVim will parse the configuration file additionally. If no type is
|
||
specified, the default type `alternate` will be used.
|
||
|
||
here is an example of `.project_alt.json`:
|
||
|
||
|
||
>
|
||
{
|
||
"autoload/SpaceVim/layers/lang/*.vim": {
|
||
"doc": "docs/layers/lang/{}.md",
|
||
"test": "test/layer/lang/{}.vader"
|
||
}
|
||
}
|
||
<
|
||
|
||
instead of using `.project_alt.json`, `b:alternate_file_config` can be used in
|
||
bootstrap function, for example:
|
||
|
||
|
||
>
|
||
augroup myspacevim
|
||
autocmd!
|
||
autocmd BufNewFile,BufEnter *.c let b:alternate_file_config = {
|
||
\ "src/*.c" : {
|
||
\ "doc" : "docs/{}.md",
|
||
\ "alternate" : "include/{}.h",
|
||
\ }
|
||
\ }
|
||
autocmd BufNewFile,BufEnter *.h let b:alternate_file_config = {
|
||
\ "include/*.h" : {
|
||
\ "alternate" : "scr/{}.c",
|
||
\ }
|
||
\ }
|
||
augroup END
|
||
<
|
||
|
||
==============================================================================
|
||
AUTOSAVE *SpaceVim-plugins-autosave*
|
||
|
||
The `autosave` plugin will save your work automatically, and this plugin has
|
||
been used in `edit` layer, checkout |SpaceVim-layers-edit| for more info.
|
||
|
||
==============================================================================
|
||
FLYGREP *SpaceVim-plugins-flygrep*
|
||
|
||
`flygrep` means `grep on the fly`, it will update the result as you type. Of
|
||
course, it is running asynchronously. Before using this feature, you need to
|
||
install a searching tool. flygrep supports those tools: `ag`, `rg`, `ack`,
|
||
`pt` and `grep`, Choose one you like.
|
||
|
||
checkout |SpaceVim-usage-search-and-replace| for more info to use flygrep in
|
||
SpaceVim.
|
||
|
||
KEY BINDINGS IN FLYGREP WINDOW
|
||
|
||
After opening flygrep window, those key bindings can be used:
|
||
>
|
||
Key Bindings | Descriptions
|
||
------------------- | ----------------------------------
|
||
Tab / Ctrl-j | move cursor to next item
|
||
Shift-Tab / Ctrl-K | move cursor to previous item
|
||
ScrollWheelDown | move cursor to next item
|
||
ScrollWheelUp | move cursor to previous item
|
||
Enter | open file at the cursor line
|
||
Ctrl-t | open item in new tab
|
||
LeftMouse | move cursor to mouse position
|
||
2-LeftMouse | open file at the mouse position
|
||
Ctrl-f | start filter mode
|
||
Ctrl-v | open item in vertical split window
|
||
Ctrl-s | open item in split window
|
||
Ctrl-q | apply all items into quickfix
|
||
Ctrl-e | toggle fix-string mode
|
||
Ctrl-h | toggle display hidden files
|
||
Ctrl-r | read from register, need insert register name
|
||
Left / Right | move cursor to left or right
|
||
BackSpace | remove last character
|
||
Ctrl-w | remove the Word before the cursor
|
||
Ctrl-u | remove the Line before the cursor
|
||
Ctrl-k | remove the Line after the cursor
|
||
Ctrl-a / Home | Go to the beginning of the line
|
||
End | Go to the end of the line
|
||
<
|
||
|
||
==============================================================================
|
||
IEDIT *SpaceVim-plugins-iedit*
|
||
|
||
The `iedit` plugin provides multiple cursor support for SpaceVim.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC s e string iedit mode
|
||
<
|
||
|
||
After starting iedit, the following key bindings can be used:
|
||
>
|
||
Mode Key binding Description
|
||
Iedit-Normal a start iedit-insert mode after cursor
|
||
Iedit-Normal e forward to the end of word
|
||
Iedit-Normal w forward to the begin of next word
|
||
Iedit-Normal b move to the begin of current word
|
||
Iedit-Normal Ctrl-n forward and active next match
|
||
Iedit-Normal Ctrl-x inactivate current match and move forward
|
||
Iedit-Normal Ctrl-p inactivate current match and move backward
|
||
<
|
||
|
||
==============================================================================
|
||
RUNNER *SpaceVim-plugins-runner*
|
||
|
||
The `code runner` plugin provides the ability to run code snippet or code file
|
||
for a variety of programming languages, as well as running custom commands.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC s r start default code runner
|
||
q close coder runner window
|
||
i insert text to background process
|
||
<
|
||
|
||
DEFINED A RUNNER
|
||
|
||
1. The runner can be a string. which will be running directly.
|
||
|
||
2. The runner also can be a list with two items. each item has following
|
||
structure.
|
||
|
||
|
||
>
|
||
{
|
||
"exe" : String,
|
||
"opt" : a List of arguments,
|
||
"targetopt" : String, the target option,
|
||
"usestdin" : Bollean,
|
||
}
|
||
<
|
||
|
||
==============================================================================
|
||
SCROLLBAR *SpaceVim-plugins-scrollbar*
|
||
|
||
The `scrollbar` plugin provides a scrollbar for current windows. There are two
|
||
versions in SpaceVim.
|
||
|
||
1. Old version is written in Vim script for vim and < nvim 0.9.0
|
||
2. The new version is written in Lua, and require `has('nvim-0.9.0')`
|
||
|
||
This plugin is included in |SpaceVim-layers-ui|.
|
||
|
||
==============================================================================
|
||
TAB MANAGER *SpaceVim-plugins-tabmanager*
|
||
|
||
The `tabmanager` plugin provides tab manager support for SpaceVim.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC t t open tab manager windows
|
||
<
|
||
|
||
In the tab manager windows, the following key bindings can be used:
|
||
>
|
||
Key binding Description
|
||
---------------------------
|
||
q close tab manager
|
||
o toggle tab
|
||
r rename tabpage
|
||
n create new named tabpage
|
||
N create new unamed tabpage
|
||
x delete tabpage
|
||
yy copy tabpage
|
||
p paste tabpage
|
||
Ctrl-Shift-Up move tabpage backward
|
||
Ctrl-Shift-Down move tabpage forward
|
||
<
|
||
|
||
==============================================================================
|
||
TODO MANAGER *SpaceVim-plugins-todomanager*
|
||
|
||
The `todomanager` plugin provides todo manager support for SpaceVim.
|
||
|
||
KEY BINDINGS
|
||
|
||
>
|
||
Key binding Description
|
||
SPC a o open todo manager windows
|
||
<
|
||
|
||
CONFIGURATION
|
||
|
||
The todo manager labels can be set via |SpaceVim-options-todo_labels|
|
||
|
||
==============================================================================
|
||
API *SpaceVim-api*
|
||
|
||
SpaceVim contains a variety of public apis. To using the api, you need to make
|
||
sure SpaceVim has been added to your &rtp. after that, you can use
|
||
|SpaceVim#api#import| to import the API you need.
|
||
|
||
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)
|
||
<
|
||
|
||
here is list of resources where SpaceVim comes from:
|
||
|
||
vital: https://github.com/vim-jp/vital.vim
|
||
|
||
==============================================================================
|
||
CLOCK *SpaceVim-api-clock*
|
||
|
||
The `clock` api provides basic functions to manage clock. The following
|
||
functions can be used:
|
||
|
||
`start()`: start a new clock.
|
||
`pause()`: pause current clock.
|
||
`continue()`: continue current clock.
|
||
`end()`: stop current clock, and return the time.
|
||
|
||
Example:
|
||
>
|
||
let s:CLOCK = SpaceVim#api#import('clock')
|
||
call s:CLOCK.start()
|
||
" do something
|
||
echo s:CLOCK.end()
|
||
<
|
||
|
||
==============================================================================
|
||
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.
|
||
|
||
Example:
|
||
>
|
||
<
|
||
let menu = SpaceVim#api#import('cmdlinemenu') let ques = [ \ ['basic
|
||
mode', function('s:basic_mode')], \ ['dark powered mode',
|
||
function('s:awesome_mode')], \ ] call menu.menu(ques) <
|
||
|
||
==============================================================================
|
||
DATA#DICT *SpaceVim-api-data-dict*
|
||
|
||
provides some functions to manipulate a dict.
|
||
|
||
make({keys}, {values}[, {fill}])
|
||
|
||
make a dictionary from two list, the {keys} and {values}.
|
||
|
||
swap({dict})
|
||
|
||
swap the keys and values in a dictionary.
|
||
|
||
make_index
|
||
|
||
make a dictionary from a list, use
|
||
|
||
==============================================================================
|
||
DATA#LIST *SpaceVim-api-data-list*
|
||
|
||
provides some functions to manipulate a 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}
|
||
|
||
replace(list, begin, end, re_list)
|
||
|
||
replace {list} from {begin} to {end} with {re_list}
|
||
|
||
shift({list})
|
||
|
||
remove first item in a {list}, and return the item
|
||
|
||
unshift({list})
|
||
|
||
insert an item to the begin of the {list}
|
||
|
||
clear({list})
|
||
|
||
clear items in the {list}
|
||
|
||
char_range({from}, {to})
|
||
|
||
return a characters list based on the ascii number range.
|
||
|
||
==============================================================================
|
||
DATA#NUMBER *SpaceVim-api-data-number*
|
||
|
||
data#number API provides some basic functions to generate number.
|
||
|
||
random([{a}[, {b}]])
|
||
>
|
||
random() : an unbounded random integer number.
|
||
random(a) : an unbounded random number larger than a.
|
||
random(a, b) : a random number from [a, a + b - 1].
|
||
<
|
||
|
||
==============================================================================
|
||
DATA#STRING *SpaceVim-api-data-string*
|
||
|
||
|
||
FUNCTIONS
|
||
|
||
split(str [, sep [, keepempty[, max]]])
|
||
|
||
run vim command, and return the output of such command.
|
||
|
||
trim(str)
|
||
|
||
remove space at the begin and end of a string, same as |trim()|
|
||
|
||
fill(str, length[, char])
|
||
|
||
fill string to length with {char}, if {char} is omnit, a space is used.
|
||
|
||
==============================================================================
|
||
FILE *SpaceVim-api-file*
|
||
|
||
The `file` api provides basic functions to manage file. The following
|
||
functions can be used:
|
||
|
||
`fticon(path)`: get the filetype icon of path
|
||
`write(msg, fname)`: append msg to fname.
|
||
`override(msg, fname)`: override fname with msg.
|
||
`read(fname)`: read the context of fname.
|
||
`ls(dir, if_file_only)`: list files and directories in dir
|
||
`updatefiles(files)`: update all files
|
||
`unify_path(path, ...)`: unify the format of path
|
||
`path_to_fname(path)`: get unify string of a path.
|
||
`findfile(pattern, dir)`: find path match pattern in dir.
|
||
`finddir(pattern, dir)`: find directory match pattern in dir
|
||
|
||
Example:
|
||
>
|
||
let s:FILE = SpaceVim#api#import('file')
|
||
<
|
||
|
||
==============================================================================
|
||
JOB *SpaceVim-api-job*
|
||
|
||
provides some functions to manager job
|
||
|
||
start({cmd}[, {opt}])
|
||
|
||
spawns {cmd} as a job. {opts} is a dictionary with these keys:
|
||
|
||
on_stdout: stdout event handler (function name or Funcref)
|
||
|
||
on_stderr: stderr event handler (function name or Funcref)
|
||
|
||
on_exit: exit event handler (function name or Funcref)
|
||
|
||
cwd: working directory of the job; defaults to current directory
|
||
|
||
stop(id)
|
||
|
||
stop job via job id.
|
||
|
||
send(id, data)
|
||
|
||
send {data} to specific job.
|
||
|
||
status(id)
|
||
|
||
return the job status of a specific job.
|
||
|
||
|
||
This api also can be use in lua:
|
||
|
||
Example:
|
||
>
|
||
local job = require('spacevim.api.job')
|
||
|
||
local function on_stdout(id, data)
|
||
|
||
end
|
||
|
||
local function on_stderr(id, data)
|
||
|
||
end
|
||
|
||
local function on_exit(id, code, single)
|
||
|
||
end
|
||
|
||
job.start({'vim', '--version'},
|
||
on_stdout = on_stdout,
|
||
on_stderr = on_stderr,
|
||
on_exit = on_exit
|
||
)
|
||
<
|
||
|
||
==============================================================================
|
||
LOGGER *SpaceVim-api-logger*
|
||
|
||
provides some functions to manager logger
|
||
|
||
set_silent({silent})
|
||
|
||
{silent} is a Boolean. by default it is false, and log will be print to
|
||
screen.
|
||
|
||
==============================================================================
|
||
NOTIFY *SpaceVim-api-notify*
|
||
|
||
The notification api for SpaceVim
|
||
|
||
notify({msg} [, {Color}[, {option}]])
|
||
|
||
Use floating windows to display notification {msg}. The {msg} can be a string
|
||
or a list of string. {Color} is the name of highlight ground defined in Vim.
|
||
The {option} is a dictionary which support following key:
|
||
|
||
`winblend`: enable transparency for the notify windows. Valid values are in
|
||
the range of 0 to 100. Default is 0.
|
||
|
||
NOTE: Floating windows support pseudo-transparency (:help 'winblend') in
|
||
#neovim HEAD (v0.4.x).
|
||
|
||
|
||
==============================================================================
|
||
PASSWORD *SpaceVim-api-password*
|
||
|
||
provides some functions to generate password
|
||
|
||
generate_simple({len})
|
||
|
||
generate simple password
|
||
|
||
generate_strong({len})
|
||
|
||
generate strong password
|
||
|
||
generate_paranoid({len})
|
||
|
||
generate paranoid password
|
||
|
||
generate_numeric({len})
|
||
|
||
generate numeric password
|
||
|
||
generate_phonetic({len})
|
||
|
||
generate phonetic password
|
||
|
||
==============================================================================
|
||
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
|
||
|
||
==============================================================================
|
||
SYSTEM *SpaceVim-api-system*
|
||
|
||
name()
|
||
|
||
Return the name of current os, availibel value is: linux, cygwin, windows and
|
||
mac.
|
||
|
||
==============================================================================
|
||
TIME *SpaceVim-api-time*
|
||
|
||
`time` api provides basic functions to get time information.
|
||
|
||
current_time()
|
||
|
||
get current time, the format is `%I:%M %p`
|
||
|
||
current_date()
|
||
|
||
get current date, the format is `%a %b %d`
|
||
|
||
==============================================================================
|
||
UNICODE#BOX *SpaceVim-api-unicode-box*
|
||
|
||
provides some functions to draw box and table.
|
||
|
||
drawing_table({json}[, {keys}])
|
||
|
||
drawing table with json data.
|
||
|
||
|
||
==============================================================================
|
||
VIM#BUFFER *SpaceVim-api-vim-buffer*
|
||
|
||
INTRO
|
||
|
||
vim#buffer API provides some basic functions for setting and getting config of
|
||
vim buffer.
|
||
|
||
FUNCTIONS
|
||
|
||
is_cmdwin()
|
||
|
||
Check if current windows is command line windows.
|
||
|
||
open(opt)
|
||
|
||
Open a new buffer with specifice options, return the buffer number, the {opt}
|
||
is a dict with following keys:
|
||
|
||
bufname : the buffer name of the new buffer
|
||
|
||
mode: how to open the new buffer, default is vertical topleft split
|
||
|
||
initfunc: the function which will be call after creating buffer
|
||
|
||
cmd: the ex command which will be run after the new buffer is created
|
||
|
||
get_option(bufnr, name)
|
||
|
||
Gets a buffer option value.
|
||
|
||
set_option(buf, opt, value)
|
||
|
||
Set a buffer option value.
|
||
|
||
==============================================================================
|
||
VIM#COMMAND *SpaceVim-api-vim-command*
|
||
|
||
This api is for creating complete function for custom vim command. This is
|
||
example for create complete function for command TEST
|
||
>
|
||
let s:CMD = SpaceVim#api#import('vim#command')
|
||
let s:CMD.options = {
|
||
\ '-f' : {
|
||
\ 'description' : '',
|
||
\ 'complete' : ['text'],
|
||
\ },
|
||
\ '-d' : {
|
||
\ 'description' : 'Root directory for sources',
|
||
\ 'complete' : 'file',
|
||
\ },
|
||
\ }
|
||
function! CompleteTest(a, b, c)
|
||
return s:CMD.complete(a:a, a:b, a:c)
|
||
endfunction
|
||
function! Test(...)
|
||
endfunction
|
||
command! -nargs=* -complete=custom,CompleteTest TEST :call Test(<f-args>)
|
||
<
|
||
|
||
==============================================================================
|
||
VIM#COMPATIBLE *SpaceVim-api-vim-compatible*
|
||
|
||
|
||
FUNCTIONS
|
||
|
||
execute(cmd)
|
||
|
||
run vim command, and return the output of such command.
|
||
|
||
system(cmd)
|
||
|
||
like |system()| but can accept list as argv.
|
||
|
||
systemlist(cmd)
|
||
|
||
like |systemlist()| but can accept list as argv.
|
||
|
||
has(feature)
|
||
|
||
check if {feature} is supported in current version.
|
||
|
||
getjumplist()
|
||
|
||
return a list of jump position, like result of |:jump|
|
||
|
||
==============================================================================
|
||
VIM#MESSAGE *SpaceVim-api-vim-message*
|
||
|
||
`vim#message` API provide functions for generating colored message in vim's
|
||
command line.
|
||
>
|
||
let s:MSG = SpaceVim#api#import('vim#message')
|
||
call s:MSG.echo('WarningMsg', 'hello world!')
|
||
<
|
||
FUNCTIONS
|
||
|
||
echo({hi}, {msg})
|
||
|
||
print message with {hi} highlight group. The {msg} starts on a new line.
|
||
|
||
echon({hi}, {msg})
|
||
|
||
print message with {hi} highlight group. The {msg} will be displayed
|
||
without anything added.
|
||
|
||
echomsg({hi}, {msg})
|
||
|
||
print message with {hi} highlight group. The {msg} starts on a new line.
|
||
The {msg} also will be added to `:messages` history.
|
||
|
||
error({msg})
|
||
|
||
same as `echomsg('Error', {msg})`
|
||
|
||
warn({msg})
|
||
|
||
same as `echomsg('WarningMsg', {msg})`
|
||
|
||
confirm({msg})
|
||
|
||
promote a confirm message, accept user input `y/n`.
|
||
|
||
==============================================================================
|
||
VIM#WINDOW *SpaceVim-api-vim-window*
|
||
|
||
INTRO
|
||
|
||
`vim#window` API provides some basic functions for setting and getting config
|
||
of vim window.
|
||
|
||
FUNCTIONS
|
||
|
||
get_cursor({winid})
|
||
|
||
Gets the cursor position in the window {winid}, to get the ID of a window,
|
||
checkout |window-ID|.
|
||
|
||
set_cursor({winid}, {pos})
|
||
|
||
Sets the cursor position to {pos} in the window {winid}.
|
||
|
||
is_float({winid})
|
||
|
||
Check if the window is a floating windows, return `v:true` if the window
|
||
is a floating window.
|
||
|
||
winexists({winid})
|
||
|
||
Check if the window with {winid} exists in current tabpage.
|
||
|
||
==============================================================================
|
||
DEVELOPMENT *SpaceVim-dev*
|
||
|
||
|
||
SpaceVim is a joint effort of all contributors. We encourage you to
|
||
participate in SpaceVim's development. We have some guidelines that we need
|
||
all contributors to follow.
|
||
|
||
==============================================================================
|
||
LICENSE *SpaceVim-dev-license*
|
||
|
||
The license is GPLv3 for all the parts of SpaceVim. This includes:
|
||
1. The initialization and core files.
|
||
2. All the layer files.
|
||
3. The documentation
|
||
|
||
For files not belonging to SpaceVim like bundle packages, refer to the header
|
||
file. Those files should not have an empty header, we may not accept code
|
||
without a proper header file.
|
||
|
||
==============================================================================
|
||
RUNTIME LOG *SpaceVim-runtime-log*
|
||
|
||
The runtime log of SpaceVim can be obtained via the key binding `SPC h L`. To
|
||
get the debug information about the current SpaceVim environment, Use the
|
||
command `:SPDebugInfo!`. This command will open a new buffer where default
|
||
information will be shown. You can also use `SPC h I` to open a buffer with
|
||
SpaceVim's issue template.
|
||
|
||
==============================================================================
|
||
COMMIT-STYLE-GUIDE *SpaceVim-dev-commit-style-guide*
|
||
|
||
A git commit message consists a three distinct parts separated by black line.
|
||
>
|
||
Type (scope): Subject
|
||
|
||
body
|
||
|
||
footer
|
||
<
|
||
types:
|
||
|
||
`feat`: a new feature
|
||
`fix`: a bug fix
|
||
`change`: no backward compatible changes
|
||
`docs`: changes to documentation
|
||
`style`: formatting, missing semi colons, etc; no code change
|
||
`refactor`: refactoring production code
|
||
`test`: adding tests, refactoring test; no production code change
|
||
`chore`: updating build tasks, package manager configs, etc; no production
|
||
code change
|
||
|
||
scopes:
|
||
|
||
`api`: files in `autoload/SpaceVim/api/` and `docs/api/` directory
|
||
`layer`: files in `autoload/SpaceVim/layers/` and `docs/layers/` directory
|
||
`plugin`: files in `autoload/SpaceVim/plugins/` directory
|
||
`bundle`: files in `bundle/` directory
|
||
`core`: other files in this repository
|
||
|
||
subject:
|
||
|
||
Subjects should be no greater than 50 characters, should begin with a capital
|
||
letter and do not end with a period.
|
||
|
||
Use an imperative tone to describe what a commit does, rather than what it
|
||
did. For example, use change; not changed or changes.
|
||
|
||
body:
|
||
|
||
Not all commits are complex enough to warrant a body, therefore it is optional
|
||
and only used when a commit requires a bit of explanation and context.
|
||
|
||
footer:
|
||
|
||
The footer is optional and is used to reference issue tracker IDs.
|
||
|
||
==============================================================================
|
||
MERGE REQUESE *SpaceVim-dev-merge-request*
|
||
|
||
|
||
STEPS
|
||
|
||
The following steps describe how to create a new merge request using mail.
|
||
|
||
1. create new empty repository on github,gitlab or any other platform.
|
||
2. clone your repository
|
||
|
||
>
|
||
git clone ${YOUR_OWN_REPOSITORY_URL}
|
||
<
|
||
3. add upstream remote
|
||
|
||
>
|
||
git remote add upstream https://spacevim.org/git/repos/SpaceVim/
|
||
<
|
||
4. create new branch based on `upstream/master`
|
||
|
||
>
|
||
git fetch upstream
|
||
git checkout -b new_branch upstream/master
|
||
<
|
||
5. edit, commit and push to your own repository
|
||
|
||
>
|
||
git push -u origin
|
||
<
|
||
6. send merge request to mail list.
|
||
|
||
email address: `spacevim@googlegroups.com`
|
||
|
||
email title:
|
||
|
||
The title of the email should contain one of the following prefixes::
|
||
|
||
`Add:` Adding new features.
|
||
|
||
`Change:` Change default behaviors or the existing features.
|
||
|
||
`Fix:` Fix some bugs.
|
||
|
||
`Remove:` Remove some existing features.
|
||
|
||
`Doc:` Update the help files.
|
||
|
||
`Website:` Update the content of website.
|
||
|
||
Here is an example:
|
||
|
||
`Website: Update the lang#c layer page.`
|
||
|
||
Email context:
|
||
|
||
The context should contain the url of repository and the branch name.
|
||
|
||
It is better to add some description about the changes. For example:
|
||
>
|
||
repo url: https://gitlab.com/wsdjeg/hello.git
|
||
branch: fix_scrollbar
|
||
|
||
when switch windows, the highlight of scrollbar is wrong.
|
||
here is the reproduce steps:
|
||
|
||
。。。。
|
||
<
|
||
|
||
<
|
||
SIMPLE PRS
|
||
|
||
1. Branch from `master`
|
||
2. One topic per PR
|
||
3. One commit per PR
|
||
4. If you have several commits on different topics, close the PR and create
|
||
one PR per topic
|
||
5. If you still have several commits, squash them into only one commit
|
||
|
||
COMPLEX PRS
|
||
|
||
Squash only the commits with uninteresting changes like typos, syntax fixes,
|
||
etc. And keep the important and isolated steps in different commits.
|
||
|
||
Those PRs are merged and explicitly not fast-forwarded.
|
||
|
||
==============================================================================
|
||
COMMUNITY *SpaceVim-community*
|
||
|
||
|
||
NEWS
|
||
|
||
The news about spacevim will be post on twitter, feel free to follow them:
|
||
|
||
https://x.com/SpaceVim
|
||
|
||
ASKING FOR HELP
|
||
|
||
If you have any questions about using SpaceVim, check out the following
|
||
context first, which may contain the answers:
|
||
|
||
|SpaceVim-faq|: Some of the most frequently asked questions are answered
|
||
there. |SpaceVim-usage|: It is the general documentation of SpaceVim.
|
||
|
||
FEEDBACK
|
||
|
||
If you run into a bug, or want a new feature, please use the mail list:
|
||
|
||
send email to spacevim@googlegroups.com
|
||
|
||
To subscribe the maillist, send anything
|
||
to:spacevim+subscribe@googlegroups.com
|
||
|
||
==============================================================================
|
||
FAQ *SpaceVim-faq*
|
||
|
||
This is a list of the frequently asked questions about SpaceVim.
|
||
|
||
1. How do I enable YouCompleteMe?
|
||
|
||
Step 1: Add `enable_ycm = true` to custom_config. By default it should be
|
||
`~/.SpaceVim.d/init.toml`.
|
||
|
||
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. This can be changed
|
||
by |SpaceVim-options-snippet_engine| option.
|
||
|
||
If you want to add a snippet for a current filetype, run |:NeoSnippetEdit|
|
||
command. A buffer will be opened and you can add your custom snippet. By
|
||
default this buffer will be save in `~/.SpaceVim.d/snippets`.
|
||
|
||
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 g:mapleader = "\<Space>"` to bootstrap function.
|
||
|
||
5. Why does Vim freeze after pressing Ctrl-s?
|
||
|
||
This is a feature of terminal emulators. You can use `Ctrl-q` to unfreeze
|
||
Vim. To disable this feature you need the following in either
|
||
`~/.bash_profile` or `~/.bashrc`:
|
||
>
|
||
stty -ixon
|
||
<
|
||
|
||
6. 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. But in SpaceVim the custom configuration file is loaded
|
||
after SpaceVim core code. So in SpaceVim itself, if we using `:py` command,
|
||
it may cause errors.
|
||
|
||
So we introduce two new environment variables: `PYTHON_HOST_PROG` and
|
||
`PYTHON3_HOST_PROG`.
|
||
|
||
For example:
|
||
>
|
||
export PYTHON_HOST_PROG='/home/q/envs/neovim2/bin/python'
|
||
export PYTHON3_HOST_PROG='/home/q/envs/neovim3/bin/python'
|
||
<
|
||
|
||
==============================================================================
|
||
ROADMAP *SpaceVim-roadmap*
|
||
|
||
The roadmap defines the project direction and priorities. If you have any
|
||
suggestions , please checkout |SpaceVim-community|.
|
||
|
||
TO-DO LIST
|
||
|
||
[x] rewrite statusline plugin with lua
|
||
[x] rewrite tabline plugin with lua
|
||
[ ] merge website context into :h SpaceVim
|
||
|
||
COMPLETED
|
||
|
||
All completed functions can be found in |SpaceVim-changelog|
|
||
|
||
==============================================================================
|
||
CHANGELOG *SpaceVim-changelog*
|
||
|
||
Following HEAD: changes in master branch since last release v2.2.0
|
||
|
||
https://spacevim.org/following-head/
|
||
|
||
2024-03-24: v2.3.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v2.3.0/
|
||
|
||
2023-07-05: v2.2.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v2.2.0/
|
||
|
||
2023-03-30: v2.1.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v2.1.0/
|
||
|
||
2022-07-02: v2.0.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v2.0.0/
|
||
|
||
2021-06-16: v1.9.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.9.0/
|
||
|
||
2021-06-16: v1.8.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.8.0/
|
||
|
||
2021-06-16: v1.7.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.7.0/
|
||
|
||
2020-12-31: v1.6.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.6.0/
|
||
|
||
2020-08-01: v1.5.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.5.0/
|
||
|
||
2020-04-05: v1.4.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.4.0/
|
||
|
||
2019-11-04: v1.3.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.3.0/
|
||
|
||
2019-07-17: v1.2.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.2.0/
|
||
|
||
2019-04-08: v1.1.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.1.0/
|
||
|
||
2018-12-25: v1.0.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v1.0.0/
|
||
|
||
2018-09-26: v0.9.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.9.0/
|
||
|
||
2018-06-18: v0.8.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.8.0/
|
||
|
||
2018-03-18: v0.7.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.7.0/
|
||
|
||
2017-12-30: v0.6.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.6.0/
|
||
|
||
2017-11-06: v0.5.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.5.0/
|
||
|
||
2017-08-05: v0.4.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.4.0/
|
||
|
||
2017-06-27: v0.3.1
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.3.1/
|
||
|
||
2017-05-31: v0.3.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.3.0/
|
||
|
||
2017-03-30: v0.2.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.2.0/
|
||
|
||
2017-01-26: v0.1.0
|
||
|
||
https://spacevim.org/SpaceVim-release-v0.1.0/
|
||
|
||
|
||
vim:tw=78:ts=8:ft=help:norl:
|